Syntax-flag assignment operator when equality-comparison operator expected

if (x=y) should be if (x==y). in any of the cases where a conditional is expected, a single-equal sign should be flagged. similarly, if an assignment operator is expected, but a comparison-equality operator is included, it should be flagged.
or (but i hate this) if (x=y) should evaluate to true, always, and x should get the value of y (but please, don’t do that).