Quellcode durchsuchen

Clean up Declaration/TypeCheck dependency (#753)

Looks more like a mistake/legacy than deliberate
Jon Meow vor 4 Jahren
Ursprung
Commit
a6655b320c

+ 0 - 2
executable_semantics/ast/BUILD

@@ -19,8 +19,6 @@ cc_library(
         ":pattern",
         ":struct_definition",
         "//common:ostream",
-        "//executable_semantics/interpreter:address",
-        "//executable_semantics/interpreter:containers",
         "@llvm-project//llvm:Support",
     ],
 )

+ 0 - 14
executable_semantics/ast/declaration.h

@@ -13,24 +13,10 @@
 #include "executable_semantics/ast/member.h"
 #include "executable_semantics/ast/pattern.h"
 #include "executable_semantics/ast/struct_definition.h"
-#include "executable_semantics/interpreter/address.h"
-#include "executable_semantics/interpreter/dictionary.h"
 #include "llvm/Support/Compiler.h"
 
 namespace Carbon {
 
-class Value;
-
-using TypeEnv = Dictionary<std::string, const Value*>;
-using Env = Dictionary<std::string, Address>;
-
-struct TypeCheckContext {
-  // Symbol table mapping names of runtime entities to their type.
-  TypeEnv types;
-  // Symbol table mapping names of compile time entities to their value.
-  Env values;
-};
-
 // Abstract base class of all AST nodes representing patterns.
 //
 // Declaration and its derived classes support LLVM-style RTTI, including

+ 7 - 0
executable_semantics/interpreter/typecheck.h

@@ -39,6 +39,13 @@ struct TCStatement {
   TypeEnv types;
 };
 
+struct TypeCheckContext {
+  // Symbol table mapping names of runtime entities to their type.
+  TypeEnv types;
+  // Symbol table mapping names of compile time entities to their value.
+  Env values;
+};
+
 auto TypeCheckExp(const Expression* e, TypeEnv types, Env values)
     -> TCExpression;
 auto TypeCheckPattern(const Pattern* p, TypeEnv types, Env values,