trcall is stomping on an arg/return value.
samrushing opened this issue · 1 comments
samrushing commented
symptom: sequence nodes are not getting a type assigned during the typing phase.
cause: somehow the exp
arg is getting stomped on. I traced it to a bogus trcall that is overwriting the arg.
The call should not be allowed as a tail call because of the type assignment that follows the call. This could be an interaction between inlining and tail call identification?
samrushing commented
This was caused by an overly-aggressive trcall. The fix is to have trcall only apply to direct self-tail-recursion, and not crawl way up the stack.
Fix is forthcoming.