sys::Obj compiler::CompilerSupport compiler::CallResolver
CallResolver handles the process of resolving a CallExpr or UnknownVarExpr to a method call or a field access.
Find the method or field with the specified name.
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
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.
Construct with NameExpr (base class of CallExpr and UnknownVarExpr)
Resolve into a method call or field access
Resolve the base type which defines the slot we are calling.