Check what the phase achieves, to be called at any point after it is finished.
Check what the phase achieves, to be called at any point after it is finished.
The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1.
The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1. -1 if the phase is not installed in the context.
id of this mini phase in group
id of this mini phase in group
Output should be checkable by TreeChecker
Output should be checkable by TreeChecker
Is this phase the standard typerphase? True for FrontEnd, but not for other first phases (such as FromTasty).
Is this phase the standard typerphase? True for FrontEnd, but not for other first phases (such as FromTasty). The predicate is tested in some places that perform checks and corrections. It's different from isAfterTyper (and cheaper to test).
If set, allow missing or superfluous arguments in applications and type applications.
If set, allow missing or superfluous arguments in applications and type applications.
List of names of phases that should precede this phase
List of names of phases that should precede this phase
List of names of phases that should have finished their processing of all compilation units before this phase starts
List of names of phases that should have finished their processing of all compilation units before this phase starts
Transform tree using all transforms of current group (including this one)
Transform tree using all transforms of current group (including this one)
Transform single node using all transforms following the current one in this group
Transform single node using all transforms following the current one in this group
Transform subtree using all transforms following the current one in this group
Transform subtree using all transforms following the current one in this group
Throws an UnsupportedOperationException
with the given method name.
Throws an UnsupportedOperationException
with the given method name.
Implements partial evaluation of
sc.isInstanceOf[Sel]
according to:+-------------+----------------------------+----------------------------+------------------+ | Sel\sc | trait | class | final class | +-------------+----------------------------+----------------------------+------------------+ | trait | ? | ? | statically known | | class | ? | false if classes unrelated | statically known | | final class | false if classes unrelated | false if classes unrelated | statically known | +-------------+----------------------------+----------------------------+------------------+
This is a generalized solution to raising an error on unreachable match cases and warnings on other statically known results of
isInstanceOf
.Steps taken:
Any
b) handleStaticallyKnown c) falseIfUnrelated withscrutinee <:< selector
d) handleFalseUnrelated e) leave as is (akahappens
) 3. Rewrite according to step taken in2