ref: 2809ae93520d9f0444f6c6f3c51db3ef65602b4b
parent: 9424339d8d453f5c559edd5d23549d662d1c9d8d
author: Ori Bernstein <ori@eigenstate.org>
date: Tue Jan 2 18:19:38 EST 2018
Get closer to typechecking generic args correctly.
--- a/parse/infer.c
+++ b/parse/infer.c
@@ -638,7 +638,9 @@
t = tylookup(orig);
isgeneric = t->type == Tygeneric;
ingeneric += isgeneric;
+ pushenv(orig->env);
tyresolve(t);
+ popenv(orig->env);
/* If this is an instantiation of a generic type, we want the params to
* match the instantiation */
if (orig->type == Tyunres && t->type == Tygeneric) {