On 4/15/2018 10:57 PM, Shachar Shemesh wrote:
It seems that the && evaluation does not stop when the first false is found.
Evaluation does stop, semantic analysis does not. For example:
bool foo() {
return 0 && undefined_variable;
}
does not compile. I'd speculate that most would consider this code compiling
successfully as surprising behavior. It would also be difficult to specify, as
just when is e1 of (e1 && e2) statically known at compile time (i.e. how much
flow analysis is the compiler expected to do to determine this?).