OuterOps
The operations in this class
- add outer parameters
- pass outer arguments to these parameters
- replace outer this references by outer paths. They are called from erasure. There are two constraints which suggest these operations should be done in erasure.
- Replacing this references with outer paths loses aliasing information, so programs will not typecheck with unerased types unless a lot of type refinements are added. Therefore, outer paths should be computed no earlier than erasure.
- outer parameters should not show up in signatures, so again they cannot be added before erasure.
- outer arguments need access to outer parameters as well as to the original type prefixes of types in New expressions. These prefixes get erased during erasure. Therefore, outer arguments have to be passed no later than erasure.
Value members
Concrete methods
If cls
has an outer parameter add one to the method type tp
.
If cls
has an outer parameter add one to the method type tp
.
If function in an apply node is a constructor that needs to be passed an outer argument, the singleton list with the argument, otherwise Nil.
If function in an apply node is a constructor that needs to be passed an outer argument, the singleton list with the argument, otherwise Nil.
If the constructors of the given cls
need to be passed an outer
argument, the singleton list with the argument, otherwise Nil.
If the constructors of the given cls
need to be passed an outer
argument, the singleton list with the argument, otherwise Nil.
A path of outer accessors starting from node start
. start
defaults to the
context owner's this node. There are two alternative conditions that determine
where the path ends:
A path of outer accessors starting from node start
. start
defaults to the
context owner's this node. There are two alternative conditions that determine
where the path ends:
- if the initial
count
parameter is non-negative: where the number of outer accessors reaches count. - if the initial
count
parameter is negative: where the class symbol of the type of the reached tree matchestoCls
.