dotty.tools.dotc.ast
Members list
Type members
Classlikes
Helper methods to desugar enums
Attributes
- Supertypes
- Self type
-
MainProxies.type
Utility functions to go from typed to untyped ASTs
A base class for things that have positions (currently: modifiers and trees)
A base class for things that have positions (currently: modifiers and trees)
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
class Tree[T]class Block[T]class XMLBlockclass CaseDef[T]class DenotingTree[T]trait DefTree[T]class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass Template[T]class DerivingTemplateclass ImportOrExport[T]class Export[T]class Import[T]class NameTree[T]class Labeled[T]class RefTree[T]class Ident[T]class SearchFailureIdent[T]object EmptyTypeIdent.typeclass Select[T]class SelectWithSig[T]class SingletonTypeTree[T]class This[T]class TypeTree[T]class InferredTypeTree[T]class DerivedTypeTreeclass DerivedFromParamTreeclass SetterParamTreeclass TermRefTreeclass TypeRefTreeclass Hole[T]class Inlined[T]class Literal[T]class NamedArg[T]class New[T]trait PatternTree[T]class Alternative[T]class UnApply[T]class ProxyTree[T]class Annotated[T]class AppliedTypeTree[T]class GenericApply[T]class Apply[T]class TypeApply[T]class PackageDef[T]class RefinedTypeTree[T]class Super[T]class Typed[T]class Parensclass TypedSpliceclass SeqLiteral[T]class JavaSeqLiteral[T]trait TermTree[T]class Assign[T]class Closure[T]class If[T]class InlineIf[T]class Match[T]class InlineMatch[T]class Quote[T]class Return[T]class Splice[T]class SplicePattern[T]class Try[T]class WhileDo[T]class Thicket[T]class EmptyTree[T]trait TypTree[T]class ByNameTypeTree[T]class LambdaTypeTree[T]class MatchTypeTree[T]class TermLambdaTypeTree[T]class TypeBoundsTree[T]trait WithoutTypeOrPos[T]class DependentTypeTreeclass ExtMethodsclass Functionclass FunctionWithModsclass WildcardFunctionclass GenAliasclass GenFromclass ImportSelectorclass Intoclass MacroTreeclass OpTreeclass InfixOpclass PostfixOpclass PrefixOpclass PolyFunctionclass Tupleclass Modclass Abstractclass Erasedclass Finalclass Givenclass Implicitclass Impureclass Infixclass Inlineclass Lazyclass Opaqueclass Openclass Overrideclass Privateclass Protectedclass Sealedclass Transparentclass VarShow all
Attributes
- Companion
- class
- Supertypes
- Self type
-
Positioned.type
Attributes
A TreeMap that maintains the necessary infrastructure to support contextual implicit searches (type-scope implicits are supported anyway).
A TreeMap that maintains the necessary infrastructure to support contextual implicit searches (type-scope implicits are supported anyway).
This incudes implicits defined in scope as well as imported implicits.
Attributes
- Supertypes
- Known subtypes
-
class TreeMapWithStagesclass CrossStageSafety
A map that applies three functions and a substitution together to a tree and makes sure they are coordinated so that the result is well-typed. The functions are
A map that applies three functions and a substitution together to a tree and makes sure they are coordinated so that the result is well-typed. The functions are
Value parameters
- newOwners
-
New owners, replacing previous owners.
- oldOwners
-
Previous owners. If a top-level local symbol in the mapped tree has one of these as an owner, the owner is replaced by the corresponding symbol in
newOwners
. - substFrom
-
The symbols that need to be substituted.
- substTo
-
The substitution targets. The reason the substitution is broken out from the rest of the type map is that all symbols have to be substituted at the same time. If we do not do this, we risk data races on named types. Example: Say we have
outer#1.inner#2
and we have two substitutions S1 = [outer#1 := outer#3], S2 = [inner#2 := inner#4] where hashtags precede symbol ids. If we do S1 first, we get outer#2.inner#3. If we then do S2 we get outer#2.inner#4. But that means that the named type outer#2.inner gets two different denotations in the same period. Hence, if -Yno-double-bindings is set, we would get a data race assertion error. - treeMap
-
A transformer that translates all encountered subtrees in prefix traversal orders
- typeMap
-
A function from Type to Type that gets applied to the type of every tree node and to all locally defined symbols, followed by the substitution [substFrom := substTo].
Attributes
- Supertypes