From c1e1962cfdcaf8e09d036bd1d84eb9e65c1a4d7a Mon Sep 17 00:00:00 2001 From: Sam Vervaeck Date: Thu, 11 Jul 2024 21:03:32 +0200 Subject: [PATCH] Fix unbound variables not being searched for in the solved type --- src/Checker.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 };