trait
LambdaType
extends
Type
with
BindingType
with
MethodicType
The lambda type square:
LambdaType | TermLambda | TypeLambda -------------+-------------------+------------------ HKLambda | HKTermLambda | HKTypeLambda MethodOrPoly | MethodType | PolyType
Constructors
Members
type
PInfo
=
Nothing <: Type
type
This
=
Nothing <: LambdaType
type
ThisName
=
Nothing <: Name
lazy
val
paramRefs
: List
[
ParamRef
]
def
companion
: LambdaTypeCompanion
[
ThisName, PInfo, This
]
protected
def
computeSignature
(
implicit
ctx:
Context
)
: Signature
final
def
derivedLambdaType
(
paramNames:
List
[
ThisName
]
,
paramInfos:
List
[
PInfo
]
,
resType:
Type
)
(
implicit
ctx:
Context
)
: LambdaType
def
derivedLambdaType$default$1
: List
[
ThisName
]
def
derivedLambdaType$default$2
: List
[
PInfo
]
def
derivedLambdaType$default$3
: Type
final
def
instantiate
(
argTypes: =>
List
[
Type
]
)
(
implicit
ctx:
Context
)
: Type
def
integrate
(
tparams:
List
[
ParamInfo
]
,
tp:
Type
)
(
implicit
ctx:
Context
)
: Type
The type [tparams := paramRefs] tp
, where tparams
can be
either a list of type parameter symbols or a list of lambda parameters
The type [tparams := paramRefs] tp
, where tparams
can be
either a list of type parameter symbols or a list of lambda parameters
def
isDependent
(
implicit
ctx:
Context
)
: Boolean
final
def
isHigherKinded
: Boolean
def
isImplicit
: Boolean
def
isJava
: Boolean
def
isParamDependent
(
implicit
ctx:
Context
)
: Boolean
final
def
isTermLambda
: Boolean
final
def
isTypeLambda
: Boolean
final
def
newLikeThis
(
paramNames:
List
[
ThisName
]
,
paramInfos:
List
[
PInfo
]
,
resType:
Type
)
(
implicit
ctx:
Context
)
: This
def
newParamRef
(
n:
Int
)
: ParamRef
def
paramInfos
: List
[
PInfo
]
def
paramNames
: List
[
ThisName
]
protected
def
prefixString
: String
def
resType
: Type
override
def
resultType
(
implicit
ctx:
Context
)
: Type
The resultType of a LambdaType, or ExprType, the type itself for others
The resultType of a LambdaType, or ExprType, the type itself for others
override final
def
toString
: String