abstract class TestApplication [ Arg ]
extends Application

Subclass of Application for the cases where we are interested only in a "can/cannot apply" answer, without needing to construct trees or issue error messages.

Constructors

TestApplication ( methRef: TermRef , funType: Type , args: List [ Arg ] , resultType: Type )
TestApplication ( implicit ctx: Context )

Members

type Result = Unit
type TypedArg = Arg

The type of typed arguments: either tpd.Tree or Type

The type of typed arguments: either tpd.Tree or Type

private val args : List [ Arg ]
private implicit val ctx : Context
private val funType : Type
private val methRef : TermRef
lazy val normalizedFun : Tree

The current function part, which might be affected by lifting.

The current function part, which might be affected by lifting.

private val resultType : Type
def addArg ( arg: TypedArg , formal: Type ) : Unit

Check that argument corresponds to type formal and possibly add it to the list of adapted arguments

Check that argument corresponds to type formal and possibly add it to the list of adapted arguments

def appPos : Position
protected def argType ( arg: Arg , formal: Type ) : Type

The type of the given argument

The type of the given argument

def fail ( msg: => Message , arg: Arg ) : Unit

Signal failure with given message at position of given argument

Signal failure with given message at position of given argument

def fail ( msg: => Message ) : Unit

Signal failure with given message at position of the application itself

Signal failure with given message at position of the application itself

def makeVarArg ( n: Int , elemFormal: Type ) : Unit

If constructing trees, turn last n processed arguments into a SeqLiteral tree with element type elemFormal.

If constructing trees, turn last n processed arguments into a SeqLiteral tree with element type elemFormal.

def typedArg ( arg: Arg , formal: Type ) : Arg

Given an original argument and the type of the corresponding formal parameter, produce a typed argument.

Given an original argument and the type of the corresponding formal parameter, produce a typed argument.