Constructors
Members
Subclass of Application for applicability tests with type arguments and value argument trees.
Subclass of Application for applicability tests with type arguments and value argument trees.
Subclass of Application for applicability tests with type arguments and value argument trees.
Subclass of Application for applicability tests with type arguments and value argument trees.
Subclass of Application for applicability tests with value argument types.
Subclass of Application for applicability tests with value argument types.
Subclass of Application for type checking an Apply node with typed arguments.
Subclass of Application for type checking an Apply node with typed arguments.
Subclass of Application for type checking an Apply node with untyped arguments.
Subclass of Application for type checking an Apply node with untyped arguments.
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 mes...
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.
Subclass of Application for type checking an Apply node, where types of arguments are either known or unknown.
Subclass of Application for type checking an Apply node, where types of arguments are either known or unknown.
If app
is a this(...)
constructor call, the this-call argument context,
otherwise the current context.
If app
is a this(...)
constructor call, the this-call argument context,
otherwise the current context.
Rewrite new Array[T](....)
if T is an unbounded generic to calls to newGenericArray.
It is performed during typer as creation of generic arrays needs a...
Rewrite new Array[T](....)
if T is an unbounded generic to calls to newGenericArray.
It is performed during typer as creation of generic arrays needs a classTag.
we rely on implicit search to find one.
Overridden in ReTyper to handle primitive operations that can be generated after erasure
Overridden in ReTyper to handle primitive operations that can be generated after erasure
If trees
all have numeric value types, and they do not have all the same type,
pick a common numeric supertype and convert all trees to this type.
If trees
all have numeric value types, and they do not have all the same type,
pick a common numeric supertype and convert all trees to this type.
If all types
are numeric value types, and they are not all the same type,
pick a common numeric supertype and return it instead of every original type.
If all types
are numeric value types, and they are not all the same type,
pick a common numeric supertype and return it instead of every original type.
Is given method reference applicable to type arguments targs
and argument trees args
?
Is given method reference applicable to type arguments targs
and argument trees args
?
Is given method reference applicable to argument types args
?
Is given method reference applicable to argument types args
?
Is given type applicable to type arguments targs
and argument trees args
,
possibly after inserting an apply
?
Is given type applicable to type arguments targs
and argument trees args
,
possibly after inserting an apply
?
Is given type applicable to argument types args
, possibly after inserting an apply
?
Is given type applicable to argument types args
, possibly after inserting an apply
?
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
In a set of overloaded applicable alternatives, is alt1
at least as good as
alt2
? Also used for implicits disambiguation.
Is given method reference applicable to type arguments targs
and argument trees args
without inferring views?
Is given method reference applicable to type arguments targs
and argument trees args
without inferring views?
Try to typecheck any arguments in pt
that are function values missing a
parameter type. The expected type for these arguments is the lub of the
correspo...
[U][U]
Try to typecheck any arguments in pt
that are function values missing a
parameter type. The expected type for these arguments is the lub of the
corresponding formal parameter types of all alternatives. Type variables
in formal parameter types are replaced by wildcards. The result of the
typecheck is stored in pt
, to be retrieved when its typedArgs
are selected.
The benefit of doing this is to allow idioms like this:
def map(f: Char => Char): String = ??? def map[U](f: Char => U): Seq[U] = ??? map(x => x.toUpper)
Without pretypeArgs
we'd get a "missing parameter type" error for x
.
With pretypeArgs
, we use the union of the two formal parameter types
Char => Char
and Char => ?
as the expected type of the closure x => x.toUpper
.
That union is Char => Char
, so we have an expected parameter type Char
for x
, and the code typechecks.
Resolve overloaded alternative alts
, given expected type pt
and
possibly also type argument targs
that need to be applied to each alternative
to form th...
Resolve overloaded alternative alts
, given expected type pt
and
possibly also type argument targs
that need to be applied to each alternative
to form the method type.
todo: use techniques like for implicits to pick candidates quickly?
This private version of resolveOverloaded
does the bulk of the work of
overloading resolution, but does not do result adaptation. It might be
called twi...
This private version of resolveOverloaded
does the bulk of the work of
overloading resolution, but does not do result adaptation. It might be
called twice from the public resolveOverloaded
method, once with
implicits enabled, and once without.