dotty.tools.dotc.transform.MegaPhase
See theMegaPhase companion class
object MegaPhase
A MegaPhase combines a number of mini-phases which are all executed in a single tree traversal.
This is an evolution of the previous "TreeTransformers.scala", which was written by @DarkDimius and is described in his thesis.
Attributes
Members list
Type members
Classlikes
The base class of tree transforms. For each kind of tree K, there are two methods which can be overridden:
The base class of tree transforms. For each kind of tree K, there are two methods which can be overridden:
prepareForK: return a new Context which gets passed to the node and its children transformK // transform node of type K
There are also prepare/transform hooks for
- Stats: to prepare/transform a statement sequence in a block, template, or package def,
- Unit : to prepare/transform a whole compilation unit
- Other: to prepare/transform a tree that does not have a specific prepare/transform method pair.
Attributes
- Supertypes
- Known subtypes
-
class CollectSuperCallstrait PluginPhaseclass StringInterpolatorOptclass AddLocalJSFakeNewsclass ExplicitJSClassesclass JUnitBootstrappersclass ArrayApplyclass ArrayConstructorsclass BetaReduceclass CapturedVarsclass CheckLoopingImplicitsclass CheckNoSuperThisclass CheckReentrantclass CheckShadowingclass CheckStaticclass CheckUnusedclass PostInliningclass PostTyperclass CollectEntryPointsclass CollectNullableFieldsclass CompleteJavaEnumsclass Constructorsclass CookCommentsclass CountOuterAccessesclass CrossVersionChecksclass DropBreaksclass DropOuterAccessorsclass ElimByNameclass ElimErasedValueTypeclass ElimOpaqueclass ElimOuterSelectclass ElimPackagePrefixesclass ElimPolyFunctionclass ElimRepeatedclass ElimStaticThisclass EtaReduceclass ExpandPrivateclass ExpandSAMsclass ExplicitOuterclass ExplicitSelfclass ExtensionMethodsclass FirstTransformclass Flattenclass ForwardDepChecksclass FunctionXXLForwardersclass Gettersclass HoistSuperArgsclass InlinePatternsclass InlineValsclass Instrumentationclass InterceptedMethodsclass LambdaLiftclass LazyValsclass LetOverApplyclass Memoizeclass Mixinclass MoveStaticsclass NonLocalReturnsclass ParamForwardingclass PatternMatcherclass ProtectedAccessorsclass PruneErasedDefsclass PureStatsclass RepeatableAnnotationsclass ResolveSuperclass RestoreScopesclass SelectStaticclass SeqLiteralsclass SpecializeApplyMethodsclass SpecializeFunctionsclass SpecializeTuplesclass TailRecclass TransformWildcardsclass TryCatchPatternsclass TupleOptimizationsclass UncacheGivenAliasesclass UninitializedDefsclass VCElideAllocationsclass VCInlineMethodsclass RefChecksShow all
In this article