class compiler::ResolveExpr

sys::Obj
  compiler::CompilerSupport
    compiler::CompilerStep
      compiler::ResolveExpr

Source

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[,]

Source

enterBlock

virtual override Void enterBlock(Block block)

Source

enterMethodDef

virtual override Void enterMethodDef(MethodDef m)

Source

enterStmt

virtual override Void enterStmt(Stmt stmt)

Source

exitBlock

virtual override Void exitBlock(Block block)

Source

inClosure

Bool inClosure := false

Source

make

new make(Compiler compiler)

Source

run

virtual override Void run()

Source

stmtStack

Stmt[] stmtStack := Stmt[,]

Source

visitExpr

virtual override Expr visitExpr(Expr expr)

Source

visitStmt

virtual override Stmt[]? visitStmt(Stmt stmt)

Source