pub fn calls_a_function(expr: &Expr) -> boolExpand description
Whether evaluating expr can call a function.
C11 6.5.16.2p3 is why this is worth asking: a compound assignment is, “with
respect to an indeterminately-sequenced function call, a single evaluation”,
so the read-modify-write of x |= f() may not be split around the call to
f the way x = x | f() would be. Code generation evaluates such a right
operand into a temporary first, and asks this to know when it has to.