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
Flags_and
( self: Flags ) ( that: Flags ) : FlagsIntersection of the two flag sets
Intersection of the two flag sets
Flags_is
( self: Flags ) ( that: Flags ) : BooleanIs the given flag set a subset of this flag sets
Is the given flag set a subset of this flag sets
Flags_or
( self: Flags ) ( that: Flags ) : FlagsUnion of the two flag sets
Union of the two flag sets
GivenMatch_copy
( original: Tree ) ( cases: List[CaseDef] ) ( implicit ctx: Context ) : GivenMatchId_name
( self: Id ) ( implicit ctx: Context ) : StringName of the identifier
Name of the identifier
Id_pos
( self: Id ) ( implicit ctx: Context ) : PositionPosition in the source code
Position in the source code
If_copy
( original: Tree ) ( cond: Term , thenp: Term , elsep: Term ) ( implicit ctx: Context ) : IfImplicitSearchFailure_explanation
( self: ImplicitSearchFailure ) ( implicit ctx: Context ) : StringImport_apply
( iexpr: Term , selectors: List[ImportSelector] ) ( implicit ctx: Context ) : ImportImport_copy
( original: Tree ) ( expr: Term , selectors: List[ImportSelector] ) ( implicit ctx: Context ) : ImportInlined_apply
( call: Option[Tree] , bindings: List[Definition] , expansion: Term ) ( implicit ctx: Context ) : InlinedInlined_copy
( original: Tree ) ( call: Option[Tree] , bindings: List[Definition] , expansion: Term ) ( implicit ctx: Context ) : InlinedLambdacopy
( original: Tree ) ( tparams: List[TypeDef] , body: Tree ) ( implicit ctx: Context ) : LambdaTypeTreeMatchTypeTree_apply
( bound: Option[TypeTree] , selector: TypeTree , cases: List[TypeCaseDef] ) ( implicit ctx: Context ) : MatchTypeTreeMatchTypeTree_copy
( original: Tree ) ( bound: Option[TypeTree] , selector: TypeTree , cases: List[TypeCaseDef] ) ( implicit ctx: Context ) : MatchTypeTreeMatchType_apply
( bound: Type , scrutinee: Type , cases: List[Type] ) ( implicit ctx: Context ) : MatchTypeMatch_copy
( original: Tree ) ( selector: Term , cases: List[CaseDef] ) ( implicit ctx: Context ) : MatchMethodType_apply
( paramNames: List[String] ) ( paramInfosExp: MethodType => List[Type] , resultTypeExp: MethodType => Type ) : MethodTypeNamedArg_copy
( original: Tree ) ( name: String , arg: Term ) ( implicit ctx: Context ) : NamedArgPackageClause_copy
( original: Tree ) ( pid: Ref , stats: List[Tree] ) ( implicit ctx: Context ) : PackageClausePolyType_apply
( paramNames: List[String] ) ( paramBoundsExp: PolyType => List[TypeBounds] , resultTypeExp: PolyType => Type ) ( implicit ctx: Context ) : PolyTypePosition_end
( self: Position ) : IntThe end offset in the source file
The end offset in the source file
Position_endColumn
( self: Position ) : IntThe end column in the source file
The end column in the source file
Position_endLine
( self: Position ) : IntThe end line in the source file
The end line in the source file
Position_sourceCode
( self: Position ) : StringSource code within the position
Source code within the position
Position_sourceFile
( self: Position ) : SourceFileSource file in which this position is located
Source file in which this position is located
Position_start
( self: Position ) : IntThe start offset in the source file
The start offset in the source file
Position_startColumn
( self: Position ) : IntThe start column in the source file
The start column in the source file
Position_startLine
( self: Position ) : IntThe start line in the source file
The start line in the source file
Projection_copy
( original: Tree ) ( qualifier: TypeTree , name: String ) ( implicit ctx: Context ) : ProjectionQuotedExpr_cast
[U] ( self: Expr[Nothing <: Any] ) ( implicit tp: Type[U] , ctx: Context ) : Expr[U]Checked cast to a quoted.Expr[U]
Checked cast to a quoted.Expr[U]
QuotedExpr_seal
( self: Term ) ( implicit ctx: Context ) : Expr[Any]Convert Term
to an quoted.Expr[Any]
Convert Term
to an quoted.Expr[Any]
QuotedExpr_unseal
( self: Expr[Nothing <: Any] ) ( implicit ctx: Context ) : TermView this expression quoted.Expr[_]
as a Term
View this expression quoted.Expr[_]
as a Term
QuotedType_seal
( self: Type ) ( implicit ctx: Context ) : Type[Nothing <: AnyKind]Convert Type
to an quoted.Type[_]
Convert Type
to an quoted.Type[_]
QuotedType_unseal
( self: Type[Nothing <: AnyKind] ) ( implicit ctx: Context ) : TypeTreeView this expression quoted.Type[T]
as a TypeTree
View this expression quoted.Type[T]
as a TypeTree
RecursiveType_apply
( parentExp: RecursiveType => Type ) ( implicit ctx: Context ) : RecursiveTypeCreate a RecType, normalizing its contents. This means:
- Nested Rec types on the type's spine are merged with the outer one.
- Any refinement of the form
type T = z.T
on the spine of the type wherez
refers to the created rec-type is replaced bytype T
. This avoids infinite recursions later when we try to follow these references.
Create a RecType, normalizing its contents. This means:
- Nested Rec types on the type's spine are merged with the outer one.
- Any refinement of the form
type T = z.T
on the spine of the type wherez
refers to the created rec-type is replaced bytype T
. This avoids infinite recursions later when we try to follow these references.
RecursiveType_underlying
( self: RecursiveType ) ( implicit ctx: Context ) : TypeRefined_copy
( original: Tree ) ( tpt: TypeTree , refinements: List[Definition] ) ( implicit ctx: Context ) : RefinedRefinement_apply
( parent: Type , name: String , info: TypeOrBounds ) ( implicit ctx: Context ) : RefinementRepeated_copy
( original: Tree ) ( elems: List[Term] , elemtpt: TypeTree ) ( implicit ctx: Context ) : RepeatedSelectOuter_apply
( qualifier: Term , name: String , levels: Int ) ( implicit ctx: Context ) : SelectOuterSelectOuter_copy
( original: Tree ) ( qualifier: Term , name: String , levels: Int ) ( implicit ctx: Context ) : SelectOuterSelect_copy
( original: Tree ) ( qualifier: Term , name: String ) ( implicit ctx: Context ) : SelectSelect_overloaded
( qualifier: Term , name: String , targs: List[Type] , args: List[Term] ) ( implicit ctx: Context ) : ApplySourceFile_content
( self: SourceFile ) : StringContent of a source file
Content of a source file
Super_copy
( original: Tree ) ( qual: Term , mix: Option[Id] ) ( implicit ctx: Context ) : SuperSymbol_annots
( self: Symbol ) ( implicit ctx: Context ) : List[Term]Annotations attached to this symbol
Annotations attached to this symbol
Symbol_caseFields
( self: Symbol ) ( implicit ctx: Context ) : List[Symbol]Fields of a case class type -- only the ones declared in primary constructor
Fields of a case class type -- only the ones declared in primary constructor
Symbol_children
( self: Symbol ) ( implicit ctx: Context ) : List[Symbol]Case class or case object children of a sealed trait
Case class or case object children of a sealed trait
Symbol_classMethod
( self: Symbol ) ( name: String ) ( implicit ctx: Context ) : List[Symbol]Get non-private named methods defined directly inside the class
Get non-private named methods defined directly inside the class
Symbol_classMethods
( self: Symbol ) ( implicit ctx: Context ) : List[Symbol]Get all non-private methods defined directly inside the class, excluding constructors
Get all non-private methods defined directly inside the class, excluding constructors
Symbol_comment
( self: Symbol ) ( implicit ctx: Context ) : Option[Comment]The comment of the symbol
Symbol_companionClass
( self: Symbol ) ( implicit ctx: Context ) : SymbolThe symbol of the companion class
The symbol of the companion class
Symbol_companionModule
( self: Symbol ) ( implicit ctx: Context ) : SymbolThe symbol of the companion module
The symbol of the companion module
Symbol_field
( self: Symbol ) ( name: String ) ( implicit ctx: Context ) : SymbolField with the given name directly declared in the class
Field with the given name directly declared in the class
Symbol_fields
( self: Symbol ) ( implicit ctx: Context ) : List[Symbol]Fields directly declared in the class
Fields directly declared in the class
Symbol_flags
( self: Symbol ) ( implicit ctx: Context ) : FlagsFlags of this symbol
Flags of this symbol
Symbol_fullName
( self: Symbol ) ( implicit ctx: Context ) : StringThe full name of this symbol up to the root package.
The full name of this symbol up to the root package.
Symbol_isBind
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a Bind pattern?
Is this the definition of a Bind pattern?
Symbol_isClassDef
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a ClassDef tree?
Is this the definition of a ClassDef tree?
Symbol_isDefDef
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a DefDef tree?
Is this the definition of a DefDef tree?
Symbol_isTerm
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a term?
Is this the definition of a term?
Symbol_isType
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a type?
Is this the definition of a type?
Symbol_isTypeDef
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a TypeDef tree?
Is this the definition of a TypeDef tree?
Symbol_isValDef
( symbol: Symbol ) ( implicit ctx: Context ) : BooleanIs this the definition of a ValDef tree?
Is this the definition of a ValDef tree?
Symbol_maybeOwner
( self: Symbol ) ( implicit ctx: Context ) : SymbolOwner of this symbol. The owner is the symbol in which this symbol is defined. Returns NoSymbol
if this symbol does not have an owner.
Owner of this symbol. The owner is the symbol in which this symbol is defined. Returns NoSymbol
if this symbol does not have an owner.
Symbol_method
( self: Symbol ) ( name: String ) ( implicit ctx: Context ) : List[Symbol]Get named non-private methods declared or inherited
Get named non-private methods declared or inherited
Symbol_methods
( self: Symbol ) ( implicit ctx: Context ) : List[Symbol]Get all non-private methods declared or inherited
Get all non-private methods declared or inherited
Symbol_moduleClass
( self: Symbol ) ( implicit ctx: Context ) : SymbolThe class symbol of the companion module class
The class symbol of the companion module class
Symbol_name
( self: Symbol ) ( implicit ctx: Context ) : StringThe name of this symbol.
The name of this symbol.
Symbol_newMethod
( parent: Symbol , name: String , flags: Flags , tpe: Type , privateWithin: Symbol ) ( implicit ctx: Context ) : SymbolSymbol_newVal
( parent: Symbol , name: String , flags: Flags , tpe: Type , privateWithin: Symbol ) ( implicit ctx: Context ) : SymbolSymbol_owner
( self: Symbol ) ( implicit ctx: Context ) : SymbolOwner of this symbol. The owner is the symbol in which this symbol is defined. Throws if this symbol does not have an owner.
Owner of this symbol. The owner is the symbol in which this symbol is defined. Throws if this symbol does not have an owner.
Symbol_pos
( self: Symbol ) ( implicit ctx: Context ) : PositionThe position of this symbol
The position of this symbol
Symbol_privateWithin
( self: Symbol ) ( implicit ctx: Context ) : Option[Type]This symbol is private within the resulting type.
This symbol is private within the resulting type.
Symbol_protectedWithin
( self: Symbol ) ( implicit ctx: Context ) : Option[Type]This symbol is protected within the resulting type.
This symbol is protected within the resulting type.
Symbol_signature
( self: Symbol ) ( implicit ctx: Context ) : SignatureSignature of this definition
Signature of this definition
Tree_Alternatives_module_apply
( patterns: List[Tree] ) ( implicit ctx: Context ) : AlternativesTree_Alternatives_module_copy
( original: Tree ) ( patterns: List[Tree] ) ( implicit ctx: Context ) : AlternativesTree_Bind_module_copy
( original: Tree ) ( name: String , pattern: Tree ) ( implicit ctx: Context ) : BindTree_Unapply_module_copy
( original: Tree ) ( fun: Term , implicits: List[Term] , patterns: List[Tree] ) ( implicit ctx: Context ) : UnapplyTry_apply
( expr: Term , cases: List[CaseDef] , finalizer: Option[Term] ) ( implicit ctx: Context ) : TryTry_copy
( original: Tree ) ( expr: Term , cases: List[CaseDef] , finalizer: Option[Term] ) ( implicit ctx: Context ) : TryTypeApply_copy
( original: Tree ) ( fun: Term , args: List[TypeTree] ) ( implicit ctx: Context ) : TypeApplyTypeBind_copy
( original: Tree ) ( name: String , tpt: Tree ) ( implicit ctx: Context ) : TypeBindTypeBlock_apply
( aliases: List[TypeDef] , tpt: TypeTree ) ( implicit ctx: Context ) : TypeBlockTypeBlock_copy
( original: Tree ) ( aliases: List[TypeDef] , tpt: TypeTree ) ( implicit ctx: Context ) : TypeBlockTypeCaseDef_module_apply
( pattern: TypeTree , body: TypeTree ) ( implicit ctx: Context ) : TypeCaseDefTypeCaseDef_module_copy
( original: Tree ) ( pattern: TypeTree , body: TypeTree ) ( implicit ctx: Context ) : TypeCaseDefTypeDef_copy
( original: Tree ) ( name: String , rhs: Tree ) ( implicit ctx: Context ) : TypeDefTypeLambda_apply
( paramNames: List[String] , boundsFn: TypeLambda => List[TypeBounds] , bodyFn: TypeLambda => Type ) : TypeLambdaTypeSelect_copy
( original: Tree ) ( qualifier: Term , name: String ) ( implicit ctx: Context ) : TypeSelectType_dealias
( self: Type ) ( implicit ctx: Context ) : TypeFollow aliases and dereferences LazyRefs, annotated types and instantiated TypeVars until type is no longer alias type, annotated type, LazyRef, or inst...
Follow aliases and dereferences LazyRefs, annotated types and instantiated TypeVars until type is no longer alias type, annotated type, LazyRef, or instantiated type variable.
Type_derivesFrom
( self: Type ) ( cls: Symbol ) ( implicit ctx: Context ) : BooleanIs this type an instance of a non-bottom subclass of the given class cls
?
Is this type an instance of a non-bottom subclass of the given class cls
?
Type_isContextFunctionType
( self: Type ) ( implicit ctx: Context ) : BooleanIs this type an context function type?
Is this type an context function type?
Type_isDependentFunctionType
( self: Type ) ( implicit ctx: Context ) : BooleanIs this type a dependent function type?
Is this type a dependent function type?
Type_isErasedFunctionType
( self: Type ) ( implicit ctx: Context ) : BooleanIs this type an erased function type?
Is this type an erased function type?
Type_isFunctionType
( self: Type ) ( implicit ctx: Context ) : BooleanIs this type a function type?
Is this type a function type?
Type_isSubType
( self: Type ) ( that: Type ) ( implicit ctx: Context ) : BooleanIs this type a subtype of that type?
Is this type a subtype of that type?
Type_isTypeEq
( self: Type ) ( that: Type ) ( implicit ctx: Context ) : BooleanIs self
type the same as that
type?
This is the case iff Type_isSubType(self, that)
and Type_isSubType(that, self)
.
Is self
type the same as that
type?
This is the case iff Type_isSubType(self, that)
and Type_isSubType(that, self)
.
Type_widen
( self: Type ) ( implicit ctx: Context ) : TypeWiden from singleton type to its underlying non-singleton
base type by applying one or more underlying
dereferences,
Also go from => T to T.
Identity for...
Widen from singleton type to its underlying non-singleton
base type by applying one or more underlying
dereferences,
Also go from => T to T.
Identity for all other types. Example:
class Outer { class C ; val x: C } def o: Outer <o.x.type>.widen = o.C
Type_widenTermRefExpr
( self: Type ) ( implicit ctx: Context ) : TypeWiden from TermRef to its underlying non-termref base type, while also skipping Expr types.
Widen from TermRef to its underlying non-termref base type, while also skipping Expr types.
ValDef_copy
( original: Tree ) ( name: String , tpt: TypeTree , rhs: Option[Term] ) ( implicit ctx: Context ) : ValDefbetaReduce
( f: Term , args: List[Term] ) ( implicit ctx: Context ) : TermInline fn if it is an explicit closure possibly nested inside the expression of a block. Otherwise apply the arguments to the closure.
Inline fn if it is an explicit closure possibly nested inside the expression of a block. Otherwise apply the arguments to the closure.
error
( msg: => String , pos: Position ) ( implicit ctx: Context ) : UnitReport a compilation error with the given message at the given position
Report a compilation error with the given message at the given position
error
( msg: => String , source: SourceFile , start: Int , end: Int ) ( implicit ctx: Context ) : UnitReport a compilation error with the given message at the given position range
Report a compilation error with the given message at the given position range
lambdaExtractor
( term: Term , paramTypes: List[Type] ) ( implicit ctx: Context ) : Option[List[Term] => Term]matchConstant
( constant: Constant ) : Option[Unit | Null | Int | Boolean | Byte | Short | Int | Long | Float | Double | Char | String | Type]rootPosition
: PositionRoot position of this tasty context. For macros it corresponds to the expansion site.
Root position of this tasty context. For macros it corresponds to the expansion site.
searchImplicit
( tpe: Type ) ( implicit ctx: Context ) : ImplicitSearchResultFind an implicit of type T
in the current scope given by ctx
.
Return an ImplicitSearchResult
.
Find an implicit of type T
in the current scope given by ctx
.
Return an ImplicitSearchResult
.
unpickleExpr
( repr: PickledQuote , args: PickledArgs ) : Expr[Nothing <: Any]Unpickle repr
which represents a pickled Expr
tree,
replacing splice nodes with args
Unpickle repr
which represents a pickled Expr
tree,
replacing splice nodes with args
unpickleType
( repr: PickledQuote , args: PickledArgs ) : Type[Nothing <: AnyKind]Unpickle repr
which represents a pickled Type
tree,
replacing splice nodes with args
Unpickle repr
which represents a pickled Type
tree,
replacing splice nodes with args
warning
( msg: => String , pos: Position ) ( implicit ctx: Context ) : UnitReport a compilation warning with the given message at the given position
Report a compilation warning with the given message at the given position
warning
( msg: => String , source: SourceFile , start: Int , end: Int ) ( implicit ctx: Context ) : UnitReport a compilation warning with the given message at the given position range
Report a compilation warning with the given message at the given position range
The comment of the symbol