logo

class

compiler::CurryResolver

sys::Obj
  compiler::CompilerSupport
    compiler::CurryResolver

CurryResolver handles the process of resolving a CurryExpr.

Slots

defineCurry

Void defineCurry()

Define a synthetic class called Curry$xx.

Source

genSignature

Void genSignature()

Define the signature of the curries method which is any partial parameters left incomplete.

Source

make

new make(Compiler compiler, TypeDef curType, Int curryCount, CurryExpr expr)

Constructor

Source

mapCurry

Expr mapCurry()

For each argument specified we need to pass to the constructor and stash away and in a field for use in redirecting to the target method.

Source

reflection

Expr reflection()

Calling curry on a Func instance is just syntax sugar for calling Func.curry

Source

resolve

Expr resolve()

Resolve into a method call or field access

Source

simpleStatic

Expr simpleStatic()

If the curry is a static method with no arguments, then really it isn't a curry per se, because we can optimize to just a method lookup.

Source