C class

Reflection

extends Object

TASTy Reflect

Type hierarchy


+- Tree -+- PackageClause
         +- Import
         +- Statement -+- Definition --+- PackageDef
         |             |               +- ClassDef
         |             |               +- TypeDef
         |             |               +- DefDef
         |             |               +- ValDef
         |             |
         |             +- Term --------+- Ref -+- Ident
         |                             |       +- Select
         |                             |
         |                             +- Literal
         |                             +- This
         |                             +- New
         |                             +- NamedArg
         |                             +- Apply
         |                             +- TypeApply
         |                             +- Super
         |                             +- Typed
         |                             +- Assign
         |                             +- Block
         |                             +- Closure
         |                             +- If
         |                             +- Match
         |                             +- GivenMatch
         |                             +- Try
         |                             +- Return
         |                             +- Repeated
         |                             +- Inlined
         |                             +- SelectOuter
         |                             +- While
         |
         |
         +- TypeTree ----+- Inferred
         |               +- TypeIdent
         |               +- TypeSelect
         |               +- Projection
         |               +- Singleton
         |               +- Refined
         |               +- Applied
         |               +- Annotated
         |               +- MatchTypeTree
         |               +- ByName
         |               +- LambdaTypeTree
         |               +- TypeBind
         |               +- TypeBlock
         |
         +- TypeBoundsTree
         +- WildcardTypeTree
         |
         +- CaseDef
         |
         +- TypeCaseDef
         +- Bind
         +- Unapply
         +- Alternatives


                 +- NoPrefix
+- TypeOrBounds -+- TypeBounds
                 |
                 +- Type -------+- ConstantType
                                +- TermRef
                                +- TypeRef
                                +- SuperType
                                +- Refinement
                                +- AppliedType
                                +- AnnotatedType
                                +- AndType
                                +- OrType
                                +- MatchType
                                +- ByNameType
                                +- ParamRef
                                +- ThisType
                                +- RecursiveThis
                                +- RecursiveType
                                +- LambdaType[ParamInfo <: TypeOrBounds] -+- MethodType
                                                                          +- PolyType
                                                                          +- TypeLambda

+- ImportSelector -+- SimpleSelector
                   +- RenameSelector
                   +- OmitSelector

+- Id

+- Signature

+- Position

+- Comment

+- Constant

+- Symbol

+- Flags

Supertypes

Object

Constructors

Reflection

( internal: CompilerInterface )

Members

object 

Alternatives

object 

AndType

object 

Annotated

object 

AnnotatedType

object 

Applied

object 

AppliedType

object 

Apply

Scala parameter application

Scala parameter application

object 

Assign

Scala assign x = y

Scala assign x = y

object 

Bind

object 

Block

Scala code block { stat0; ...; statN; expr } term

Scala code block { stat0; ...; statN; expr } term

object 

ByName

object 

ByNameType

object 

CaseDef

object 

ClassDef

object 

Closure

object 

Comment

object 

Constant

Module of Constant literals

Module of Constant literals

object 

ConstantType

object 

Context

object 

DefDef

object 

Definition

object 

Flags

object 

GivenMatch

Scala implicit match term

Scala implicit match term

object 

Id

object 

Ident

Scala term identifier

Scala term identifier

object 

If

Scala if/else term

Scala if/else term

object 

Import

object 

Inferred

TypeTree containing an inferred type

TypeTree containing an inferred type

object 

Inlined

object 

Lambda

A lambda (...) => ... in the source code is represented as a local method and a closure:

{ def m(...) = ... closure(m) }

A lambda (...) => ... in the source code is represented as a local method and a closure:

{ def m(...) = ... closure(m) }

object 

LambdaTypeTree

object 

Literal

Scala literal constant

Scala literal constant

object 

Match

Scala match term

Scala match term

object 

MatchType

object 

MatchTypeTree

object 

MethodType

object 

NamedArg

Scala named argument x = y in argument position

Scala named argument x = y in argument position

object 

New

Scala new

Scala new

object 

NoPrefix

object 

OmitSelector

object 

OrType

object 

PackageClause

object 

PackageDef

object 

ParamRef

object 

PolyType

object 

Position

object 

Projection

object 

RecursiveThis

object 

RecursiveType

object 

Ref

object 

Refined

object 

Refinement

object 

RenameSelector

object 

Repeated

object 

Return

Scala local return

Scala local return

object 

Select

Scala term selection

Scala term selection

object 

SelectOuter

object 

Signature

The signature of a method

The signature of a method

object 

SimpleSelector

object 

Singleton

object 

SourceFile

trait 

StandardSymbols

Defines standard symbols (and types via its base trait).

Defines standard symbols (and types via its base trait).

trait 

StandardTypes

Defines standard types.

Defines standard types.

object 

Super

Scala x.super or x.super[id]

Scala x.super or x.super[id]

object 

SuperType

object 

Symbol

object 

Term

object 

TermRef

object 

This

Scala this or this[id]

Scala this or this[id]

object 

ThisType

object 

Tree

trait 

TreeAccumulator

[X]

TASTy Reflect tree accumulator

TASTy Reflect tree accumulator

trait 

TreeMap

TASTy Reflect tree map

TASTy Reflect tree map

trait 

TreeTraverser

TASTy Reflect tree traverser

TASTy Reflect tree traverser

object 

Try

Scala try/catch/finally term

Scala try/catch/finally term

object 

Type

object 

TypeApply

Scala type parameter application

Scala type parameter application

object 

TypeBind

object 

TypeBlock

object 

TypeBounds

object 

TypeBoundsTree

object 

TypeCaseDef

object 

TypeDef

object 

TypeIdent

object 

TypeLambda

object 

TypeOrBoundsOps

object 

TypeRef

object 

TypeSelect

object 

TypeTree

object 

Typed

Scala ascription x: T

Scala ascription x: T

object 

Unapply

object 

ValDef

object 

While

object 

WildcardTypeTree

object 

defn

A value containing all standard definitions in [[DefinitionsAPI]]

A value containing all standard definitions in [[DefinitionsAPI]]

type 

Alternatives

 = Alternatives

Pattern representing X | Y | ... alternatives.

Pattern representing X | Y | ... alternatives.

type 

AmbiguousImplicits

 = AmbiguousImplicits

type 

AndType

 = AndType

Intersection type T & U

Intersection type T & U

type 

Annotated

 = Annotated

Type tree representing an annotated type

Type tree representing an annotated type

type 

AnnotatedType

 = AnnotatedType

A type with an anottation T @foo

A type with an anottation T @foo

type 

Applied

 = Applied

Type tree representing a type application

Type tree representing a type application

type 

AppliedType

 = AppliedType

A higher kinded type applied to some types T[U]

A higher kinded type applied to some types T[U]

type 

Apply

 = Apply

Tree an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Applys

Tree an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Applys

type 

Assign

 = Assign

Tree representing an assignment x = y in the source code

Tree representing an assignment x = y in the source code

type 

Bind

 = Bind

Pattern representing a _ @ _ binding.

Pattern representing a _ @ _ binding.

type 

Block

 = Block

Tree representing a block { ... } in the source code

Tree representing a block { ... } in the source code

type 

ByName

 = ByName

Type tree representing a by name parameter

Type tree representing a by name parameter

type 

ByNameType

 = ByNameType

Type of a by by name parameter

Type of a by by name parameter

type 

CaseDef

 = CaseDef

Branch of a pattern match or catch clause

Branch of a pattern match or catch clause

type 

ClassDef

 = ClassDef

Tree representing a class definition. This includes annonymus class definitions and the class of a module object

Tree representing a class definition. This includes annonymus class definitions and the class of a module object

type 

Closure

 = Closure

A lambda (...) => ... in the source code is represented as a local method and a closure:

{ def m(...) = ... closure(m) }

A lambda (...) => ... in the source code is represented as a local method and a closure:

{ def m(...) = ... closure(m) }

type 

Comment

 = Comment

Comment

Comment

type 

Constant

 = Constant

Constant value represented as the constant itself

Constant value represented as the constant itself

type 

ConstantType

 = ConstantType

A singleton type representing a known constant value

A singleton type representing a known constant value

type 

Context

 = Context

Compilation context

Compilation context

type 

DefDef

 = DefDef

Tree representing a method definition in the source code

Tree representing a method definition in the source code

type 

Definition

 = Definition

Tree representing a definition in the source code. It can be PackageDef, ClassDef, TypeDef, DefDef or ValDef

Tree representing a definition in the source code. It can be PackageDef, ClassDef, TypeDef, DefDef or ValDef

type 

DivergingImplicit

 = DivergingImplicit

type 

Flags

 = Flags

FlagSet of a Symbol

FlagSet of a Symbol

type 

GivenMatch

 = GivenMatch

type 

Id

 = Id

Untyped identifier

Untyped identifier

type 

Ident

 = Ident

Tree representing a reference to definition with a given name

Tree representing a reference to definition with a given name

type 

If

 = If

Tree representing an if/then/else if (...) ... else ... in the source code

Tree representing an if/then/else if (...) ... else ... in the source code

type 

ImplicitSearchFailure

 = ImplicitSearchFailure

type 

ImplicitSearchResult

 = ImplicitSearchResult

type 

ImplicitSearchSuccess

 = ImplicitSearchSuccess

type 

Import

 = Import

Tree representing an import in the source code

Tree representing an import in the source code

type 

ImportSelector

 = ImportSelector

Import selectors: * SimpleSelector: .bar in import foo.bar * RenameSelector: .{bar => baz} in import foo.{bar => baz} * OmitSelector: .{bar => _} in impo...

Import selectors: * SimpleSelector: .bar in import foo.bar * RenameSelector: .{bar => baz} in import foo.{bar => baz} * OmitSelector: .{bar => _} in import foo.{bar => _}

type 

Inferred

 = Inferred

Type tree representing an inferred type

Type tree representing an inferred type

type 

Inlined

 = Inlined

Tree representing the scope of an inlined tree

Tree representing the scope of an inlined tree

type 

LambdaType

 = LambdaType[ParamInfo]

Common abstraction for lambda types (MethodType, PolyType and TypeLambda).

Common abstraction for lambda types (MethodType, PolyType and TypeLambda).

type 

LambdaTypeTree

 = LambdaTypeTree

Type tree representing a lambda abstraction type

Type tree representing a lambda abstraction type

type 

Literal

 = Literal

Tree representing a literal value in the source code

Tree representing a literal value in the source code

type 

Match

 = Match

Tree representing a pattern match x match { ... } in the source code

Tree representing a pattern match x match { ... } in the source code

type 

MatchType

 = MatchType

Type match T match { case U => ... }

Type match T match { case U => ... }

type 

MatchTypeTree

 = MatchTypeTree

Type tree representing a type match

Type tree representing a type match

type 

MethodType

 = MethodType

Type of the definition of a method taking a single list of parameters. It's return type may be a MethodType.

Type of the definition of a method taking a single list of parameters. It's return type may be a MethodType.

type 

NamedArg

 = NamedArg

Tree representing an argument passed with an explicit name. Such as arg1 = x in foo(arg1 = x)

Tree representing an argument passed with an explicit name. Such as arg1 = x in foo(arg1 = x)

type 

New

 = New

Tree representing new in the source code

Tree representing new in the source code

type 

NoMatchingImplicits

 = NoMatchingImplicits

type 

NoPrefix

 = NoPrefix

NoPrefix for a type selection

NoPrefix for a type selection

type 

OmitSelector

 = OmitSelector

type 

OrType

 = OrType

Union type T | U

Union type T | U

type 

PackageClause

 = PackageClause

Tree representing a pacakage clause in the source code

Tree representing a pacakage clause in the source code

type 

PackageDef

 = PackageDef

Tree representing a package definition. This includes definitions in all source files

Tree representing a package definition. This includes definitions in all source files

type 

ParamRef

 = ParamRef

Type of a parameter reference

Type of a parameter reference

type 

PolyType

 = PolyType

Type of the definition of a method taking a list of type parameters. It's return type may be a MethodType.

Type of the definition of a method taking a list of type parameters. It's return type may be a MethodType.

type 

Position

 = Position

Position in a source file

Position in a source file

type 

Projection

 = Projection

Type tree representing a selection of definition with a given name on a given type prefix

Type tree representing a selection of definition with a given name on a given type prefix

type 

RecursiveThis

 = RecursiveThis

A type that is recursively defined this

A type that is recursively defined this

type 

RecursiveType

 = RecursiveType

A type that is recursively defined

A type that is recursively defined

type 

Ref

 = Ref

Tree representing a reference to definition

Tree representing a reference to definition

type 

Refined

 = Refined

Type tree representing a type refinement

Type tree representing a type refinement

type 

Refinement

 = Refinement

A type with a type refinement T { type U }

A type with a type refinement T { type U }

type 

RenameSelector

 = RenameSelector

type 

Repeated

 = Repeated

Tree representing a variable argument list in the source code

Tree representing a variable argument list in the source code

type 

Return

 = Return

Tree representing a return in the source code

Tree representing a return in the source code

type 

Select

 = Select

Tree representing a selection of definition with a given name on a given prefix

Tree representing a selection of definition with a given name on a given prefix

type 

SelectOuter

 = SelectOuter

Tree representing a selection of definition with a given name on a given prefix and number of nested scopes of inlined trees

Tree representing a selection of definition with a given name on a given prefix and number of nested scopes of inlined trees

type 

Settings

 = Settings

Settings

Settings

type 

Signature

 = Signature

Signature of a method

Signature of a method

type 

SimpleSelector

 = SimpleSelector

type 

Singleton

 = Singleton

Type tree representing a singleton type

Type tree representing a singleton type

type 

SourceFile

 = SourceFile

Scala source file

Scala source file

type 

Statement

 = Statement

Tree representing a statement in the source code

Tree representing a statement in the source code

type 

Super

 = Super

Tree representing super in the source code

Tree representing super in the source code

type 

SuperType

 = SuperType

Type of a super reference

Type of a super reference

type 

Symbol

 = Symbol

Symbol of a definition. Then can be compared with == to know if the definition is the same.

Symbol of a definition. Then can be compared with == to know if the definition is the same.

type 

Term

 = Term

Tree representing an expression in the source code

Tree representing an expression in the source code

type 

TermRef

 = TermRef

Type of a reference to a term symbol

Type of a reference to a term symbol

type 

This

 = This

Tree representing this in the source code

Tree representing this in the source code

type 

ThisType

 = ThisType

Type of this

Type of this

type 

Tree

 = Tree

Tree representing code written in the source

Tree representing code written in the source

type 

Try

 = Try

Tree representing a try catch try x catch { ... } finally { ... } in the source code

Tree representing a try catch try x catch { ... } finally { ... } in the source code

type 

Type

 = Type

A type

A type

type 

TypeApply

 = TypeApply

Tree an application of type arguments

Tree an application of type arguments

type 

TypeBind

 = TypeBind

Type tree representing a type binding

Type tree representing a type binding

type 

TypeBlock

 = TypeBlock

Type tree within a block with aliases { type U1 = ... ; T[U1, U2] }

Type tree within a block with aliases { type U1 = ... ; T[U1, U2] }

type 

TypeBounds

 = TypeBounds

Type bounds

Type bounds

type 

TypeBoundsTree

 = TypeBoundsTree

Type tree representing a type bound written in the source

Type tree representing a type bound written in the source

type 

TypeCaseDef

 = TypeCaseDef

Branch of a type pattern match

Branch of a type pattern match

type 

TypeDef

 = TypeDef

Tree representing a type (parameter or member) definition in the source code

Tree representing a type (parameter or member) definition in the source code

type 

TypeIdent

 = TypeIdent

Type tree representing a reference to definition with a given name

Type tree representing a reference to definition with a given name

type 

TypeLambda

 = TypeLambda

Type of the definition of a type lambda taking a list of type parameters. It's return type may be a TypeLambda.

Type of the definition of a type lambda taking a list of type parameters. It's return type may be a TypeLambda.

type 

TypeOrBounds

 = TypeOrBounds

Type or bounds

Type or bounds

type 

TypeRef

 = TypeRef

Type of a reference to a type symbol

Type of a reference to a type symbol

type 

TypeSelect

 = TypeSelect

Type tree representing a selection of definition with a given name on a given term prefix

Type tree representing a selection of definition with a given name on a given term prefix

type 

TypeTree

 = TypeTree

Type tree representing a type written in the source

Type tree representing a type written in the source

type 

Typed

 = Typed

Tree representing a type ascription x: T in the source code

Tree representing a type ascription x: T in the source code

type 

Unapply

 = Unapply

Pattern representing a Xyz(...) unapply.

Pattern representing a Xyz(...) unapply.

type 

ValDef

 = ValDef

Tree representing a value definition in the source code This inclues val, lazy val, var, object and parameter defintions.

Tree representing a value definition in the source code This inclues val, lazy val, var, object and parameter defintions.

type 

While

 = While

Tree representing a while loop

Tree representing a while loop

type 

WildcardTypeTree

 = WildcardTypeTree

Type tree representing wildcard type bounds written in the source. The wildcard type _ (for example in in List[_]) will be a type tree that represents a...

Type tree representing wildcard type bounds written in the source. The wildcard type _ (for example in in List[_]) will be a type tree that represents a type but has TypeBounda inside.

private[scala] val 

internal

: CompilerInterface

final given def 

AlternativesOps

: Alternatives.type

final given def 

AndTypeOps

: AndType.type

final given def 

AnnotatedOps

: Annotated.type

final given def 

AnnotatedTypeOps

: AnnotatedType.type

final given def 

AppliedOps

: Applied.type

final given def 

AppliedTypeOps

: AppliedType.type

final given def 

ApplyOps

: Apply.type

final given def 

AssignOps

: Assign.type

final given def 

BindOps

: Bind.type

final given def 

BlockOps

: Block.type

final given def 

ByNameOps

: ByName.type

final given def 

ByNameTypeOps

: ByNameType.type

final given def 

CaseDefOps

: CaseDef.type

final given def 

ClassDefOps

: ClassDef.type

final given def 

ClosureOps

: Closure.type

final given def 

CommentOps

: Comment.type

final given def 

ConstantOps

: Constant.type

final given def 

ConstantTypeOps

: ConstantType.type

final given def 

ContextOps

: Context.type

final given def 

DefDefOps

: DefDef.type

final given def 

DefinitionOps

: Definition.type

final given def 

FlagsOps

: Flags.type

final given def 

GivenMatchOps

: GivenMatch.type

final given def 

IdOps

: Id.type

final given def 

IdentOps

: Ident.type

final given def 

IfOps

: If.type

final given def 

ImplicitSearchFailureOps

: ImplicitSearchFailure.type

final given def 

ImplicitSearchSuccessOps

: ImplicitSearchSuccess.type

final given def 

ImportOps

: Import.type

final given def 

InlinedOps

: Inlined.type

final given def 

LambdaTypeTreeOps

: LambdaTypeTree.type

final given def 

LiteralOps

: Literal.type

def 

MatchCaseType

( implicit  ctx: Context ) : Type

An accessor for scala.internal.MatchCase[_,_], the representation of a MatchType case.

An accessor for scala.internal.MatchCase[_,_], the representation of a MatchType case.

final given def 

MatchOps

: Match.type

final given def 

MatchTypeOps

: MatchType.type

final given def 

MatchTypeTreeOps

: MatchTypeTree.type

final given def 

MethodTypeOps

: MethodType.type

final given def 

NamedArgOps

: NamedArg.type

final given def 

NewOps

: New.type

final given def 

OmitSelectorOmitSelectorOps

: OmitSelector.type

final given def 

OrTypeOps

: OrType.type

final given def 

PackageClauseOps

: PackageClause.type

final given def 

PackageDefOps

: PackageDef.type

final given def 

ParamRefOps

: ParamRef.type

final given def 

PolyTypeOps

: PolyType.type

final given def 

PositionOps

: Position.type

final given def 

ProjectionOps

: Projection.type

final given def 

RecursiveThisOps

: RecursiveThis.type

final given def 

RecursiveTypeOps

: RecursiveType.type

final given def 

RefinedOps

: Refined.type

final given def 

RefinementOps

: Refinement.type

final given def 

RenameSelectorOps

: RenameSelector.type

final given def 

RepeatedOps

: Repeated.type

final given def 

ReturnOps

: Return.type

final given def 

SelectOps

: Select.type

final given def 

SelectOuterOps

: SelectOuter.type

final given def 

SignatureOps

: Signature.type

final given def 

SimpleSelectorOps

: SimpleSelector.type

final given def 

SingletonOps

: Singleton.type

final given def 

SourceFileOps

: SourceFile.type

final given def 

SuperOps

: Super.type

final given def 

SuperTypeOps

: SuperType.type

final given def 

SymbolOps

: Symbol.type

final given def 

TermOps

: Term.type

final given def 

TermRefOps

: TermRef.type

final given def 

ThisOps

: This.type

final given def 

ThisTypeOps

: ThisType.type

final given def 

TreeOps

: Tree.type

final given def 

TryOps

: Try.type

final given def 

TypeApplyOps

: TypeApply.type

final given def 

TypeBindOps

: TypeBind.type

final given def 

TypeBlockOps

: TypeBlock.type

final given def 

TypeBoundsOps

: TypeBounds.type

final given def 

TypeBoundsTreeOps

: TypeBoundsTree.type

final given def 

TypeCaseDefOps

: TypeCaseDef.type

final given def 

TypeDefOps

: TypeDef.type

final given def 

TypeIdentOps

: TypeIdent.type

final given def 

TypeLambdaOps

: TypeLambda.type

final given def 

TypeOps

: Type.type

final given def 

TypeRefOps

: TypeRef.type

final given def 

TypeSelectOps

: TypeSelect.type