Move a little logic into TypeChecker to narrow what's exposed. (#938)

This commit is contained in:
Jon Meow
2021-11-03 10:36:12 -07:00
committed by GitHub
parent 27e084d37a
commit 2f15a64a6b
4 changed files with 40 additions and 27 deletions
@@ -50,13 +50,7 @@ void ExecProgram(Nonnull<Arena*> arena, AST ast, bool trace) {
// (particularly templates) may require more passes.
ResolveNames(arena, ast);
ResolveControlFlow(ast);
TypeChecker type_checker(arena, trace);
TypeChecker::TypeCheckContext p = type_checker.TopLevel(&ast.declarations);
TypeEnv top = p.types;
Env ct_top = p.values;
for (const auto decl : ast.declarations) {
type_checker.TypeCheck(decl, top, ct_top);
}
TypeChecker(arena, trace).TypeCheck(ast);
if (trace) {
llvm::outs() << "\n";
llvm::outs() << "********** type checking complete **********\n";