SIGN IN SIGN UP

topdown/copypropagation: only update call bindings when output is captured

updateBindings before checked if the last operand was a variable, and attempted to
replace it if it was. With `neq(s & set(), s)`, the last operand was a variable,
but not the output variable -- the output wasn't captured.

So now, we use the arity of the called function to determine if we can replace a
call.

Fixes #3071.

Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com>
S
Stephan Renatus committed
ad8a937a3916e3bab6a2f83ce40340ba8ca07b2b
Parent: 727140a
Committed by Torin Sandall <torinsandall@gmail.com> on 8/12/2021, 9:33:25 PM