class compiler::ResolveExpr
sys::Obj compiler::CompilerSupport compiler::CompilerStep compiler::ResolveExpr
Walk the AST to resolve:
- Manage local variable scope
- Resolve loop for breaks and continues
- Resolve LocalDefStmt.init into full assignment expression
- Resolve Expr.ctype
- Resolve UknownVarExpr -> LocalVarExpr, FieldExpr, or CallExpr
- Resolve CallExpr to their CMethod
- blockStack
-
Block[] blockStack := Block[,]
- enterBlock
- enterMethodDef
- enterStmt
- exitBlock
- inClosure
-
Bool inClosure := false
- make
-
new make(Compiler compiler)
- run
-
virtual override Void run()
- stmtStack
-
Stmt[] stmtStack := Stmt[,]
- visitExpr
- visitStmt