1.1 --- a/jitcraft/SemanticAnalysis.h Tue Jul 03 01:00:02 2012 -0700
1.2 +++ b/jitcraft/SemanticAnalysis.h Tue Jul 03 01:14:15 2012 -0700
1.3 @@ -31,13 +31,13 @@
1.4 ParseTree *tree_;
1.5 unsigned loopDepth_;
1.6 Scope *scope_;
1.7 - Type *function_;
1.8 + ScopedRoot<Type> function_;
1.9
1.10 private:
1.11 - bool canTest(AstNode *node, Type *type);
1.12 - void unaryTypeError(AstNode *node, TokenKind token, Type *type);
1.13 - void binaryTypeError(AstNode *node, TokenKind token, Type *left, Type *right);
1.14 - Type *typeCheckBinary(AstNode *node, TokenKind token, Type *left, Type *right);
1.15 + bool canTest(AstNode *node, Handle<Type> type);
1.16 + void unaryTypeError(AstNode *node, TokenKind token, Handle<Type> type);
1.17 + void binaryTypeError(AstNode *node, TokenKind token, Handle<Type> left, Handle<Type> right);
1.18 + Type *typeCheckBinary(AstNode *node, TokenKind token, Handle<Type> left, Handle<Type> right);
1.19
1.20 // These check if one type is compatible with another type, for various
1.21 // purposes, like:
1.22 @@ -45,10 +45,10 @@
1.23 // call(a, b) matches expected arg type
1.24 // a = b matches declared type
1.25 //
1.26 - bool typeCheckArrayAssignment(AstNode *node, Type *given, Type *actual, bool forAssign);
1.27 - bool typeCheckAssignment(AstNode *node, Type *given, Type *actual, bool forAssign);
1.28 + bool typeCheckArrayAssignment(AstNode *node, Handle<Type> given, Handle<Type> actual, bool forAssign);
1.29 + bool typeCheckAssignment(AstNode *node, Handle<Type> given, Handle<Type> actual, bool forAssign);
1.30
1.31 - bool typeCheckParameter(AstNode *node, Type *given, Type *actual);
1.32 + bool typeCheckParameter(AstNode *node, Handle<Type> given, Handle<Type> actual);
1.33
1.34 Type *visitForLoad(Expression *expression);
1.35 Type *visitForRef(Expression *expression);