CompilerInterface
extends ObjectTasty reflect abstract types
+- 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 <: TreeTree representing pattern alternatives X | Y | ...
Tree representing pattern alternatives X | Y | ...
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 <: TreeTree representing a binding pattern _ @ _
Tree representing a binding pattern _ @ _
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
GivenMatch
= Nothing <: TermTree representing a pattern match given match { ... }
in the source code
Tree representing a pattern match given match { ... }
in the source code
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
Settings
= Nothing <: AnyRefSettings
Settings
Signature
= Nothing <: AnyRefSingleton
= 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 tyr catch try x catch { ... } finally { ... }
in the source code
Tree representing a tyr 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 <: TreeTree representing an unapply pattern Xyz(...)
Tree representing an unapply pattern Xyz(...)
ValDef
= Nothing <: DefinitionTree representing a value definition in the source code This inclues val
, lazy val
, var
, object
and parameter definitions.
Tree representing a value definition in the source code This inclues val
, lazy val
, var
, object
and parameter definitions.
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.
AnnotatedType_apply
( underlying: Type , annot: Term ) ( implicit ctx: Context ) : AnnotatedTypeAnnotatedType_underlying
( self: AnnotatedType ) ( implicit ctx: Context ) : TypeAnnotated_copy
( original: Tree ) ( arg: TypeTree , annotation: Term ) ( implicit ctx: Context ) : AnnotatedAppliedType_apply
( tycon: Type , args: List[TypeOrBounds] ) ( implicit ctx: Context ) : AppliedTypeApplied_copy
( original: Tree ) ( tpt: TypeTree , args: List[Tree] ) ( implicit ctx: Context ) : AppliedApply_copy
( original: Tree ) ( fun: Term , args: List[Term] ) ( implicit ctx: Context ) : ApplyBlock_copy
( original: Tree ) ( stats: List[Statement] , expr: Term ) ( implicit ctx: Context ) : BlockByNameType_underlying
( self: ByNameType ) ( implicit ctx: Context ) : TypeCaseDef_module_apply
( pattern: Tree , guard: Option[Term] , body: Term ) ( implicit ctx: Context ) : CaseDefCaseDef_module_copy
( original: Tree ) ( pattern: Tree , guard: Option[Term] , body: Term ) ( implicit ctx: Context ) : CaseDefClassDef_copy
( original: Tree ) ( name: String , constr: DefDef , parents: List[Tree] , derived: List[TypeTree] , selfOpt: Option[ValDef] , body: List[Statement] ) ( implicit ctx: Context ) : ClassDefClosure_copy
( original: Tree ) ( meth: Tree , tpe: Option[Type] ) ( implicit ctx: Context ) : ClosureComment_expanded
( self: Comment ) : Option[String]Constant_apply
( x: Unit | Null | Int | Boolean | Byte | Short | Int | Long | Float | Double | Char | String | Type ) : ConstantContext_compilationUnitClassname
( self: Context ) : StringClass name of the current CompilationUnit
Class name of the current CompilationUnit
Context_isJavaCompilationUnit
( self: Context ) : BooleanReturns true if we've tried to reflect on a Java class.
Returns true if we've tried to reflect on a Java class.
Context_isScala2CompilationUnit
( self: Context ) : BooleanReturns true if we've tried to reflect on a Scala2 (non-Tasty) class.
Returns true if we've tried to reflect on a Scala2 (non-Tasty) class.
Context_owner
( self: Context ) : SymbolReturns the owner of the context
Returns the owner of the context
Context_requiredClass
( self: Context ) ( path: String ) : SymbolGet class symbol if class is either defined in current compilation run or present on classpath.
Get class symbol if class is either defined in current compilation run or present on classpath.
Context_requiredMethod
( self: Context ) ( path: String ) : SymbolGet method symbol if method is either defined in current compilation run or present on classpath. Throws if the method has an overload.
Get method symbol if method is either defined in current compilation run or present on classpath. Throws if the method has an overload.
Context_requiredModule
( self: Context ) ( path: String ) : SymbolGet module symbol if module is either defined in current compilation run or present on classpath.
Get module symbol if module is either defined in current compilation run or present on classpath.
Context_requiredPackage
( self: Context ) ( path: String ) : SymbolGet package symbol if package is either defined in current compilation run or present on classpath.
Get package symbol if package is either defined in current compilation run or present on classpath.
Context_source
( self: Context ) : PathReturns the source file being compiled. The path is relative to the current working directory.
Returns the source file being compiled. The path is relative to the current working directory.
DefDef_apply
( symbol: Symbol , rhsFn: List[Type] => List[List[Term]] => Option[Term] ) ( implicit ctx: Context ) : DefDefDefDef_copy
( original: Tree ) ( name: String , typeParams: List[TypeDef] , paramss: List[List[ValDef]] , tpt: TypeTree , rhs: Option[Term] ) ( implicit ctx: Context ) : DefDefDefinitions_FunctionClass$default$2
: BooleanDefinitions_FunctionClass$default$3
: BooleanDefinitions_InternalQuoted_fromAboveAnnot
: SymbolSymbol of scala.internal.Quoted.fromAbove
Symbol of scala.internal.Quoted.fromAbove
Definitions_InternalQuoted_patternBindHoleAnnot
: SymbolSymbol of scala.internal.Quoted.patternBindHole
Symbol of scala.internal.Quoted.patternBindHole
Definitions_InternalQuoted_patternHole
: SymbolSymbol of scala.internal.Quoted.patternHole
Symbol of scala.internal.Quoted.patternHole