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 

AlternativesOps

object 

AndType

object 

AndTypeOps

object 

Annotated

object 

AnnotatedOps

object 

AnnotatedType

object 

AnnotatedTypeOps

object 

Applied

object 

AppliedOps

object 

AppliedType

object 

AppliedTypeOps

object 

Apply

Scala parameter application

Scala parameter application

object 

ApplyOps

object 

Assign

Scala assign x = y

Scala assign x = y

object 

AssignOps

object 

Bind

object 

BindOps

object 

Block

object 

BlockOps

object 

ByName

object 

ByNameOps

object 

ByNameType

object 

ByNameTypeOps

object 

CaseDef

object 

CaseDefOps

object 

ClassDef

object 

ClassDefOps

object 

Closure

object 

ClosureOps

object 

CommentOps

object 

Constant

Module of Constant literals

Module of Constant literals

object 

ConstantOps

Members of Constant

Members of Constant

object 

ConstantType

object 

ConstantTypeOps

object 

ContextOps

object 

DefDef

object 

DefDefOps

object 

DefinitionOps

object 

Flags

object 

FlagsOps

Members of Flag

Members of Flag

object 

GivenMatch

object 

GivenMatchOps

object 

Id

object 

IdOps

object 

Ident

Scala term identifier

Scala term identifier

object 

IdentOps

object 

If

Scala if/else term

Scala if/else term

object 

IfOps

object 

Import

object 

ImportOps

object 

Inferred

TypeTree containing an inferred type

TypeTree containing an inferred type

object 

Inlined

object 

InlinedOps

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 

LiteralOps

object 

Match

Scala match term

Scala match term

object 

MatchOps

object 

MatchType

object 

MatchTypeOps

object 

MatchTypeTree

object 

MatchTypeTreeOps

object 

MethodType

object 

MethodTypeOps

object 

NamedArg

Scala named argument x = y in argument position

Scala named argument x = y in argument position

object 

NamedArgOps

object 

New

Scala new

Scala new

object 

NewOps

object 

NoPrefix

object 

OmitSelector

object 

OrType

object 

OrTypeOps

object 

PackageClause

object 

PackageClauseOps

object 

PackageDef

object 

PackageDefOps

object 

ParamRef

object 

ParamRefOps

object 

PolyType

object 

PolyTypeOps

object 

Projection

object 

ProjectionOps

object 

RecursiveThis

object 

RecursiveThisOps

object 

RecursiveType

object 

RecursiveTypeOps

object 

Ref

object 

Refined

object 

RefinedOps

object 

Refinement

object 

RefinementOps

object 

RenameSelector

object 

Repeated

object 

RepeatedOps

object 

Return

Scala local return

Scala local return

object 

ReturnOps

object 

Select

Scala term selection

Scala term selection

object 

SelectOps

object 

SelectOuter

object 

SelectOuterOps

object 

Signature

The signature of a method

The signature of a method

object 

SimpleSelector

object 

Singleton

object 

SingletonOps

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

object 

SuperOps

object 

SuperType

object 

SuperTypeOps

object 

Symbol

object 

SymbolOps

Members of Symbol

Members of Symbol

object 

TermOps

object 

TermRef

object 

TermRefOps

object 

This

Scala this or this[id]

Scala this or this[id]

object 

ThisOps

object 

ThisType

object 

ThisTypeOps

trait 

TreeAccumulator

[X]

TASTy Reflect tree accumulator

TASTy Reflect tree accumulator

trait 

TreeMap

TASTy Reflect tree map

TASTy Reflect tree map

object 

TreeOps

Members of Tree

Members of Tree

trait 

TreeTraverser

TASTy Reflect tree traverser

TASTy Reflect tree traverser

object 

Try

Scala try/catch/finally term

Scala try/catch/finally term

object 

TryOps

object 

Type

object 

TypeApply

Scala type parameter application

Scala type parameter application

object 

TypeApplyOps

object 

TypeBind

object 

TypeBindOps

object 

TypeBlock

object 

TypeBlockOps

object 

TypeBounds

object 

TypeBoundsOps

object 

TypeBoundsTree

object 

TypeCaseDef

object 

TypeCaseDefOps

object 

TypeDef

object 

TypeDefOps

object 

TypeIdent

object 

TypeIdentOps

object 

TypeLambda

object 

TypeLambdaOps

object 

TypeOps

object 

TypeOrBoundsOps

Members of TypeOrBounds

Members of TypeOrBounds

object 

TypeRef

object 

TypeRefOps

object 

TypeSelect

object 

TypeSelectOps

object 

TypeTreeOps

object 

Typed

Scala ascription x: T

Scala ascription x: T

object 

TypedOps

object 

Unapply

object 

UnapplyOps

object 

ValDef

object 

ValDefOps

object 

While

object 

WhileOps

object 

WildcardTypeTree

object 

defn

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

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

object 

failureOps

object 

omitSelectorOps

object 

positionOps

object 

signatureOps

object 

sourceFileOps

object 

successOps

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

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.

def 

error

( msg: => String pos: Position ) ( implicit  ctx: Context ) : Unit

Emits an error message

Emits an error message

def 

error

( msg: => String source: SourceFile start: Int end: Int ) ( implicit  ctx: Context ) : Unit

Emits an error at a specific range of a file

Emits an error at a specific range of a file

final given def 

given_Context

: Context

final given def