Types
extends ObjectTASTy 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
ObjectMembers
Alternatives
= Nothing <: TreePattern representing X | Y | ...
alternatives.
Pattern representing X | Y | ...
alternatives.
Annotated
= Nothing <: TypeTreeType tree representing an annotated type
Type tree representing an annotated type
AnnotatedType
= Nothing <: TypeA type with an anottation T @foo
A type with an anottation T @foo
Applied
= Nothing <: TypeTreeType tree representing a type application
Type tree representing a type application
AppliedType
= Nothing <: TypeA higher kinded type applied to some types T[U]
A higher kinded type applied to some types T[U]
Apply
= Nothing <: TermTree an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Apply
s
Tree an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Apply
s
Assign
= Nothing <: TermTree representing an assignment x = y
in the source code
Tree representing an assignment x = y
in the source code
Bind
= Nothing <: TreePattern representing a _ @ _
binding.
Pattern representing a _ @ _
binding.
Block
= Nothing <: TermTree representing a block { ... }
in the source code
Tree representing a block { ... }
in the source code
ByName
= Nothing <: TypeTreeType tree representing a by name parameter
Type tree representing a by name parameter
CaseDef
= Nothing <: TreeBranch of a pattern match or catch clause
Branch of a pattern match or catch clause
ClassDef
= Nothing <: DefinitionTree 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
Closure
= Nothing <: TermA 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) }
Comment
= Nothing <: AnyRefComment
Comment
Constant
= Nothing <: AnyRefConstant value represented as the constant itself
Constant value represented as the constant itself
ConstantType
= Nothing <: TypeA singleton type representing a known constant value
A singleton type representing a known constant value
Context
= Nothing <: AnyRefCompilation context
Compilation context
DefDef
= Nothing <: DefinitionTree representing a method definition in the source code
Tree representing a method definition in the source code
Definition
= Nothing <: StatementTree 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
Flags
=FlagSet of a Symbol
FlagSet of a Symbol
Id
= Nothing <: AnyRefUntyped identifier
Untyped identifier
Ident
= Nothing <: RefTree representing a reference to definition with a given name
Tree representing a reference to definition with a given name
If
= Nothing <: TermTree representing an if/then/else if (...) ... else ...
in the source code
Tree representing an if/then/else if (...) ... else ...
in the source code
ImplicitSearchResult
= Nothing <: AnyRefImport
= Nothing <: StatementTree representing an import in the source code
Tree representing an import in the source code
ImportSelector
= Nothing <: AnyRefImport 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 => _}
Inferred
= Nothing <: TypeTreeType tree representing an inferred type
Type tree representing an inferred type
Inlined
= Nothing <: TermTree representing the scope of an inlined tree
Tree representing the scope of an inlined tree
LambdaType
= Nothing <: TypeCommon abstraction for lambda types (MethodType, PolyType and TypeLambda).
Common abstraction for lambda types (MethodType, PolyType and TypeLambda).
LambdaTypeTree
= Nothing <: TypeTreeType tree representing a lambda abstraction type
Type tree representing a lambda abstraction type
Literal
= Nothing <: TermTree representing a literal value in the source code
Tree representing a literal value in the source code
Match
= Nothing <: TermTree representing a pattern match x match { ... }
in the source code
Tree representing a pattern match x match { ... }
in the source code
MatchType
= Nothing <: TypeType match T match { case U => ... }
Type match T match { case U => ... }
MatchTypeTree
= Nothing <: TypeTreeType tree representing a type match
Type tree representing a type match
MethodType
= Nothing <: LambdaType[Type]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.
NamedArg
= Nothing <: TermTree 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)
New
= Nothing <: TermTree representing new
in the source code
Tree representing new
in the source code
PackageClause
= Nothing <: TreeTree representing a pacakage clause in the source code
Tree representing a pacakage clause in the source code
PackageDef
= Nothing <: DefinitionTree representing a package definition. This includes definitions in all source files
Tree representing a package definition. This includes definitions in all source files
PolyType
= Nothing <: LambdaType[TypeBounds]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.
Position
= Nothing <: AnyRefPosition in a source file
Position in a source file
Projection
= Nothing <: TypeTreeType 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
RecursiveThis
= Nothing <: TypeA type that is recursively defined this
A type that is recursively defined this
RecursiveType
= Nothing <: TypeA type that is recursively defined
A type that is recursively defined
Ref
= Nothing <: TermTree representing a reference to definition
Tree representing a reference to definition
Refined
= Nothing <: TypeTreeType tree representing a type refinement
Type tree representing a type refinement
Refinement
= Nothing <: TypeA type with a type refinement T { type U }
A type with a type refinement T { type U }
Repeated
= Nothing <: TermTree representing a variable argument list in the source code
Tree representing a variable argument list in the source code
Return
= Nothing <: TermTree representing a return
in the source code
Tree representing a return
in the source code
Select
= Nothing <: RefTree 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
SelectOuter
= Nothing <: TermTree 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
Signature
= Nothing <: AnyRefSignature of a method
Signature of a method
Singleton
= Nothing <: TypeTreeType tree representing a singleton type
Type tree representing a singleton type
SourceFile
= Nothing <: AnyRefScala source file
Scala source file
Statement
= Nothing <: TreeTree representing a statement in the source code
Tree representing a statement in the source code
Super
= Nothing <: TermTree representing super
in the source code
Tree representing super
in the source code
Symbol
= Nothing <: AnyRefSymbol 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.
Term
= Nothing <: StatementTree representing an expression in the source code
Tree representing an expression in the source code
TermRef
= Nothing <: TypeType of a reference to a term symbol
Type of a reference to a term symbol
This
= Nothing <: TermTree representing this
in the source code
Tree representing this
in the source code
Tree
= Nothing <: AnyRefTree representing code written in the source
Tree representing code written in the source
Try
= Nothing <: TermTree 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
TypeApply
= Nothing <: TermTree an application of type arguments
Tree an application of type arguments
TypeBind
= Nothing <: TypeTreeType tree representing a type binding
Type tree representing a type binding
TypeBlock
= Nothing <: TypeTreeType tree within a block with aliases { type U1 = ... ; T[U1, U2] }
Type tree within a block with aliases { type U1 = ... ; T[U1, U2] }
TypeBoundsTree
= Nothing <: TreeType tree representing a type bound written in the source
Type tree representing a type bound written in the source
TypeDef
= Nothing <: DefinitionTree representing a type (parameter or member) definition in the source code
Tree representing a type (parameter or member) definition in the source code
TypeIdent
= Nothing <: TypeTreeType tree representing a reference to definition with a given name
Type tree representing a reference to definition with a given name
TypeLambda
= Nothing <: LambdaType[TypeBounds]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.
TypeOrBounds
= Nothing <: AnyRefType or bounds
Type or bounds
TypeRef
= Nothing <: TypeType of a reference to a type symbol
Type of a reference to a type symbol
TypeSelect
= Nothing <: TypeTreeType 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
TypeTree
= Nothing <: TreeType tree representing a type written in the source
Type tree representing a type written in the source
Typed
= Nothing <: TermTree representing a type ascription x: T
in the source code
Tree representing a type ascription x: T
in the source code
Unapply
= Nothing <: TreePattern representing a Xyz(...)
unapply.
Pattern representing a Xyz(...)
unapply.
ValDef
= Nothing <: DefinitionTree 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.
WildcardTypeTree
= Nothing <: TreeType 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 TypeBound
a inside.