Code that violates C++ static typing rules can be syntactically valid too, yet noone is proposing it should be only a warning.
(I find this the most weird thing about C/C++ culture: they are so proud it is static typed, yet oblivious to all the other problems and traps/memory unsafety/undefined behavior/etc.)
Contrast this to:
where (as above) 10 is assigned to b and a is left untouched, because it is parsed as: and I hope you agree that the behavior is very confusing.