class compiler::InitClosures
sys::Obj compiler::CompilerSupport compiler::CompilerStep compiler::InitClosures
During the Parse step we created a list of all the closures. In InitClosures we map each ClosureExpr into a TypeDef as an anonymous class, then we map ClosureExpr.substitute to call the constructor anonymous class.
- closure
-
ClosureExpr? closure
- cls
-
TypeDef? cls
- ctor
-
MethodDef? ctor
- doCall
-
MethodDef? doCall
- enclosingType
-
TypeDef? enclosingType
- genMethodCall
-
static MethodDef genMethodCall(Compiler compiler, Loc loc, TypeDef parent, FuncType signature, CallExpr c, Bool firstAsTarget)
This method overrides either call(List) or callx(A...) to push the args onto the stack, then redirect to the specified CallExpr c. We share this code for both closures and curries.
- loc
-
Loc? loc
- make
-
new make(Compiler compiler)
- run
-
virtual override Void run()
- signature
-
FuncType? signature