Rechecker
The typechecker pass
Attributes
- Graph
-
- Supertypes
- Known subtypes
-
Members list
Value members
Concrete methods
Check that widened types of tpe and pt are compatible.
Check that widened types of tpe and pt are compatible.
Attributes
If true, remember the new types of nodes in this compilation unit as an attachment in the unit's tpdTree node. By default, this is enabled when -Vprint:cc is set. Can be overridden.
If true, remember the new types of nodes in this compilation unit as an attachment in the unit's tpdTree node. By default, this is enabled when -Vprint:cc is set. Can be overridden.
Attributes
Finish rechecking a tree node: check rechecked type against expected type and remember rechecked type in a tree attachment if required.
Finish rechecking a tree node: check rechecked type against expected type and remember rechecked type in a tree attachment if required.
Value parameters
- pt
-
the expected type
- tpe
-
the recheched type of
tree - tree
-
the rechecked tree
Attributes
Keep the symbol of the select but re-infer its type
Keep the symbol of the select but re-infer its type
Attributes
Recheck tree without adapting it, returning its new type.
Recheck tree without adapting it, returning its new type.
Value parameters
- pt
-
the expected result type
- tree
-
the original tree
Attributes
Reset all references in prevSelDenots to the denotations they had before this phase.
Reset all references in prevSelDenots to the denotations they had before this phase.
Attributes
A hook to prevent rechecking a ValDef or DefDef. Typycally used when definitions are completed on first use.
A hook to prevent rechecking a ValDef or DefDef. Typycally used when definitions are completed on first use.
Attributes
Typing and previous transforms sometimes leaves skolem types in prefixes of NamedTypes in expected that do not match the actual Type. -Ycheck does not complain (need to find out why), but a full recheck does. We compensate by de-skolemizing everywhere in expected except when variance is negative.
Typing and previous transforms sometimes leaves skolem types in prefixes of NamedTypes in expected that do not match the actual Type. -Ycheck does not complain (need to find out why), but a full recheck does. We compensate by de-skolemizing everywhere in expected except when variance is negative.
Attributes
- Returns
-
If
tpcontains SkolemTypes in covariant or invariant positions, the type where these SkolemTypes are mapped to their underlying type. Otherwise,tpitself
Extensions
Extensions
Was a new type installed for this tree?
Was a new type installed for this tree?
Attributes
The new type of the tree, or if none was installed, the original type
The new type of the tree, or if none was installed, the original type
Attributes
Set new type of the tree if none was installed yet and the new type is different from the current type.
Set new type of the tree if none was installed yet and the new type is different from the current type.