class compiler::CallResolver
sys::Obj compiler::CompilerSupport compiler::CallResolver
CallResolver handles the process of resolving a CallExpr or UnknownVarExpr to a method call or a field access.
- args
 - 
Expr[] args - base
 - 
CType? base - baseIt
 - 
CType? baseIt - curMethod
 - 
MethodDef? curMethod - curType
 - 
TypeDef? curType - expr
 - 
NameExpr expr - find
 - 
Void find()Find the method or field with the specified name.
 - found
 - 
CSlot? found - foundOnIt
 - 
Bool foundOnIt - inferClosureTypeFromCall
 - 
static Expr inferClosureTypeFromCall(CompilerSupport support, CallExpr call, CType base)If the last argument to the resolved call is a closure, then use the method to infer the function type. If the last arg is a closure, but the call doesn't take a closure, then translate into an implicit call to Obj.with
 - isFuncFieldCall
 - 
Bool isFuncFieldCall - isItAdd
 - 
Bool isItAdd - isStaticLiteral
 - 
Bool isStaticLiteral()If this is a standalone name without a base target such as "Foo" and the name maps to a type name, then this is a type literal.
 - isVar
 - 
Bool isVar - loc
 - 
Loc loc - make
 - 
new make(Compiler compiler, TypeDef? curType, MethodDef? curMethod, NameExpr expr)Construct with NameExpr (base class of CallExpr and UnknownVarExpr)
 - name
 - 
Str name - resolve
 - 
Expr resolve()Resolve into a method call or field access
 - resolveBase
 - 
Void resolveBase()Resolve the base type which defines the slot we are calling.
 - result
 - 
Expr? result - target
 - 
Expr? target