diff --git a/src/Checker.cc b/src/Checker.cc index d58a5ca66..8c9e71316 100644 --- a/src/Checker.cc +++ b/src/Checker.cc @@ -475,8 +475,14 @@ auto getUnbound(const TypeEnv& Env, Type* Ty) { Env(Env) {} std::vector Out; void visitVar(TVar* TV) { - if (!Env.hasVar(TV)) { - Out.push_back(TV); + auto Solved = TV->find(); + if (isa(Solved)) { + auto Var = static_cast(Solved); + if (!Env.hasVar(Var)) { + Out.push_back(Var); + } + } else { + visit(Solved); } } } V { Env };