Open vbgl opened 4 months ago
Indeed, stack alloc assumes that every function argument is a variable, and badly fails otherwise. During typing, we reject most programs where it is not the case (r = f(42)
is rejected, for instance), but with inline
it is possible to pass typing and reach stack alloc with an argument that is not a variable.
I don't know what the proper fix is. Having stack alloc emit a nicer error is easy to do, while detecting this problem during typing seems hard, so I'd fix stack alloc. What do you think?
I think that a checker after type-checking and before compilation should be able to properly address this kind of errors.
In general, do you think that we should remove everything not strictly related to typing from pretyping and put it in that pass?
Precisely. That would also solve issues like #727.
Compiling the following program triggers an unfathomable internal error:
Reported by @cos-imo.