Low-level Typed AST metaprogramming API.
Provides all functionality related to AST-based metaprogramming.
Each typeXYZ in the API is defined as an abstract typetype XYZ. Methods onXYZ are provided by agiven XYZMethods which implements extension methods onXYZ in the traitXYZMethods. TheXYZ module is defined by aval XYZ: XYZModule which contains the methods defined inXYZModule. Type tests (TypeTest) are also given to perform subtype checks on these types.
Type hierarchy
+- Tree -+- PackageClause | +- Statement -+- Import | +- Export | +- Definition --+- ClassDef | | +- TypeDef | | +- ValOrDefDef -+- DefDef | | +- ValDef | | | +- Term --------+- Ref -+- Ident -+- Wildcard | | +- Select | | | +- Literal | +- This | +- New | +- NamedArg | +- Apply | +- TypeApply | +- Super | +- Assign | +- Block | +- Closure | +- If | +- Match | +- SummonFrom | +- Try | +- Return | +- Repeated | +- Inlined | +- SelectOuter | +- While | +---+- Typed | / +- TypedOrTest +----------------· +- Bind +- Unapply +- Alternatives | +- CaseDef +- TypeCaseDef | +- TypeTree ----+- Inferred | +- TypeIdent | +- TypeSelect | +- TypeProjection | +- Singleton | +- Refined | +- Applied | +- Annotated | +- MatchTypeTree | +- ByName | +- LambdaTypeTree | +- TypeBind | +- TypeBlock | +- TypeBoundsTree +- WildcardTypeTree+- ParamClause -+- TypeParamClause +- TermParamClause+- TypeRepr -+- NamedType -+- TermRef | +- TypeRef +- ConstantType +- SuperType +- Refinement +- AppliedType +- AnnotatedType +- AndOrType -+- AndType | +- OrType +- MatchType +- ByNameType +- ParamRef +- ThisType +- RecursiveThis +- RecursiveType +- LambdaType -+- MethodOrPoly -+- MethodType | | +- PolyType | +- TypeLambda +- MatchCase +- TypeBounds +- NoPrefix +- FlexibleType+- MethodTypeKind -+- Contextual +- Implicit +- Plain+- Selector -+- SimpleSelector +- RenameSelector +- OmitSelector +- GivenSelector+- Signature+- Position+- SourceFile+- Constant -+- BooleanConstant +- ByteConstant +- ShortConstant +- IntConstant +- LongConstant +- FloatConstant +- DoubleConstant +- CharConstant +- StringConstant +- UnitConstant +- NullConstant +- ClassOfConstant+- Symbol+- FlagsExtension methods ofAlternatives
Methods of the module objectval Alternatives
Extension methods ofAndOrType
Methods of the module objectval AndType
Extension methods ofAnnotated
Methods of the module objectval Annotated
Extension methods ofAnnotatedType
Methods of the module objectval AnnotatedType
Extension methods ofApplied
Methods of the module objectval Applied
Extension methods ofAppliedType
Methods of the module objectval AppliedType
Extension methods ofApply
Methods of the module objectval Apply
Extension methods ofAssign
Methods of the module objectval Assign
Extension methods ofBind
Methods of the module objectval Bind
Extension methods ofBlock
Methods of the module objectval Block
Methods of the module objectval BooleanConstant
Extension methods ofByName
Methods of the module objectval ByName
Extension methods ofByNameType
Methods of the module objectval ByNameType
Methods of the module objectval ByteConstant
Extension methods ofCaseDef
Methods of the module objectval CaseDef
Methods of the module objectval CharConstant
Extension methods ofClassDef
Methods of the module objectval ClassDef
Methods of the module objectval ClassOf
Extension methods ofClosure
Methods of the module objectval Closure
Methods of the module objectval CompilationInfo
Extension methods ofConstant
Constant value represented as the constant itself
Extension methods ofConstantType
Methods of the module objectval Type
Extension methods ofDefDef
Methods of the module objectval DefDef
Extension methods ofDefinition
Methods of the module objectval Definition
Methods of the module objectval DoubleConstant
Extension methods ofExport
Methods of the module objectval Export
Extension methods ofFlags
Methods of the module objectval Flags
Extension methods ofFlexibleType
Methods of the module objectval FlexibleType
Methods of the module objectval FloatConstant
Extension methods ofGivenSelector
Methods of the module objectval GivenSelector
Extension methods ofIdent
Methods of the module objectval Ident
Extension methods ofIf
Methods of the module objectval If
Extension methods ofImplicitSearchFailure
Extension methods ofImplicitSearchSuccess
Methods of the module objectval Implicits
Extension methods ofImport
Methods of the module objectval Import
Methods of the module objectval Inferred
Extension methods ofInlined
Methods of the module objectval Inlined
Methods of the module objectval IntConstant
Methods of the module objectval Lambda
Extension methods ofLambdaType
Extension methods ofLambdaTypeTree
Methods of the module objectval LambdaTypeTree
Extension methods ofLiteral
Methods of the module objectval Literal
Methods of the module objectval LongConstant
Extension methods ofMatchCase
Methods of the module objectval MatchCase
Extension methods ofMatch
Methods of the module objectval Match
Extension methods ofMatchType
Methods of the module objectval MatchType
Extension methods ofMatchTypeTree
Methods of the module objectval MatchTypeTree
Type which decides on the kind of parameter list represented byMethodType.
Type which decides on the kind of parameter list represented byMethodType.
Extension methods ofMethodType
Methods of the module objectval MethodType
Extension methods ofNamedArg
Methods of the module objectval NamedArg
Extension methods ofNamedType
Extension methods ofNew
Methods of the module objectval New
Methods of the module objectval NoPrefix
Methods of the module objectval NullConstant
Extension methods ofOmitSelector
Methods of the module objectval OmitSelector
Methods of the module objectval OrType
Extension methods ofPackageClause
Methods of the module objectval PackageClause
Extension methods ofParamClause
Methods of the module objectval ParamClause
Extension methods ofParamRef
Methods of the module objectval ParamRef
Extension methods ofPolyType
Methods of the module objectval PolyType
Extension methods ofPosition
Methods of the module objectval Position
Type class used inshow methods to provide customizableString representations
Type class used inshow methods to provide customizableString representations
Methods of the module objectval Printer
Extension methods ofRecursiveThis
Methods of the module objectval RecursiveThis
Extension methods ofRecursiveType
Methods of the module objectval RecursiveType
Methods of the module objectval Ref
Extension methods ofRefined
Methods of the module objectval Refined
Extension methods ofRefinement
Methods of the module objectval Refinement
Extension methods ofRenameSelector
Methods of the module objectval RenameSelector
Extension methods ofRepeated
Methods of the module objectval Repeated
Extension methods ofReturn
Methods of the module objectval Return
Extension methods ofSelect
Methods of the module objectval Select
Extension methods ofSelectOuter
Methods of the module objectval SelectOuter
Methods of the module objectval Selector
Methods of the module objectval Short
Extension methods ofSignature
Methods of the module objectval Signature
Extension methods ofSimpleSelector
Methods of the module objectval SimpleSelector
Extension methods ofSingleton
Methods of the module objectval Singleton
Extension methods ofSourceFile
Methods of the module objectval SourceFile
Methods of the module objectval StringConstant
Extension methods ofSummonFrom
Methods of the module objectval SummonFrom
Extension methods ofSuper
Methods of the module objectval Super
Extension methods ofSuperType
Methods of the module objectval SuperType
Extension methods ofSymbol
Methods of the module objectval Symbol
Extension methods ofTerm
Methods of the module objectval Term
Extension methods ofTermParamClause
Methods of the module objectval TermParamClause
Methods of the module objectval TermRef
Extension methods ofThis
Methods of the module objectval This
Extension methods ofThisType
Methods of the module objectval ThisType
Customizable Tree accumulator.
Customizable Tree accumulator.
Usage:
def inQuotes(using q: Quotes) = { import q.reflect.*class MyTreeAccumulator[X] extends TreeAccumulator[X] { def foldTree(x: X, tree: Tree)(owner: Symbol): X = ???}}Customizable tree mapper.
Customizable tree mapper.
Usage:
def inQuotes(using q: Quotes) = { import q.reflect.*class MyTreeMap extends TreeMap { override def transformTree(tree: Tree)(owner: Symbol): Tree = ???}}UseSymbol.asQuotes to create quotes with the correct owner within the TreeMap.
Extension methods ofTree
Methods of the module objectval Tree
Customizable tree traverser.
Customizable tree traverser.
Usage:
def inQuotes(using q: Quotes) = { import q.reflect.*class MyTraverser extends TreeTraverser { override def traverseTree(tree: Tree)(owner: Symbol): Unit = ???}}Extension methods ofTry
Methods of the module objectval Try
Extension methods ofTypeApply
Methods of the module objectval TypeApply
Extension methods ofTypeBind
Methods of the module objectval TypeBind
Extension methods ofTypeBlock
Methods of the module objectval TypeBlock
Extension methods ofTypeBounds
Methods of the module objectval TypeBounds
Extension methods ofTypeBoundsTree
Methods of the module objectval TypeBoundsTree
Extension methods ofTypeCaseDef
Methods of the module objectval TypeCaseDef
Extension methods ofTypeDef
Methods of the module objectval TypeDef
Extension methods ofTypeIdent
Methods of the module objectval TypeIdent
Extension methods ofTypeLambda
Methods of the module objectval TypeLambda
Extension methods ofTypeParamClause
Methods of the module objectval TypeParamClause
Extension methods ofTypeProjection
Methods of the module objectval TypeProjection
Extension methods ofTypeRef
Methods of the module objectval TypeRef
Extension methods ofTypeRepr
Methods of the module objectval TypeRepr
Extension methods ofTypeSelect
Methods of the module objectval TypeSelect
Extension methods ofTypeTree
Methods of the module objectval TypeTree
Extension methods ofTyped
Methods of the module objectval Typed
Extension methods ofTypedOrTest
Methods of the module objectval TypedOrTest
Extension methods ofUnapply
Methods of the module objectval Unapply
Methods of the module objectval UnitConstant
Extension methods ofValDef
Methods of the module objectval ValDef
Extension methods ofValOrDefDef
Extension methods ofWhile
Methods of the module objectval While
Methods of the module objectval Wildcard
Extension methods ofWildcardTypeTree
Methods of the module objectval WildcardTypeTree
Methods of the module objectval defn
Methods of the module objectval report
Pattern representingX | Y | ... alternatives.
Intersection typeT & U or an union typeT | U
Intersection typeT & U
Type tree representing an annotated type
A type with an annotationT @foo
Type tree representing a type application
A higher kinded type applied to some typesT[U]
Tree representing an application of arguments. It represents a single list of arguments, multiple argument lists will have nestedApplys
Tree representing an application of arguments. It represents a single list of arguments, multiple argument lists will have nestedApplys
Tree representing an assignmentx = y in the source code
Pattern representing a_ @ _ binding.
Tree representing a block{ ... } in the source code
Constant Boolean value
Type tree representing a by name parameter
Type of a by-name definition of type=>T.
Type of a by-name definition of type=>T.
May represent by-name parameter such asthunk in
type Tdef log[T](thunk: => T): T = ???May also represent a the return type of a parameterless method definition such as
def foo: Int = ???Constant Byte value
Branch of a pattern match or catch clause
Constant Char value
Tree representing a class definition. This includes anonymous class definitions and the class of a module object
Tree representing a class definition. This includes anonymous class definitions and the class of a module object
Constant class value representing aclassOf[T]
A lambda(...) => ... in the source code is represented as a local method and a closure:
A lambda(...) => ... in the source code is represented as a local method and a closure:
{ def m(...) = ... closure(m) }
Constant value represented as the constant itself
A singleton type representing a known constant value
Tree representing a method definition in the source code
Tree representing a definition in the source code. It can beClassDef,TypeDef,DefDef orValDef
Tree representing a definition in the source code. It can beClassDef,TypeDef,DefDef orValDef
Constant Double value
Tree representing an export clause in the source code. Export forwarders generated from this clause appear in the same scope.
Tree representing an export clause in the source code. Export forwarders generated from this clause appear in the same scope.
Flags of a Symbol
Flexible types for explicit nulls
Constant Float value
given import/export selector:.given/.{given T} inimport foo.given/export foo.{given T}
given import/export selector:.given/.{given T} inimport foo.given/export foo.{given T}
Tree representing a reference to definition with a given name
Tree representing an if/then/elseif (...) ... else ... in the source code
Tree representing an if/then/elseif (...) ... else ... in the source code
Result of a given instance search
Tree representing an import in the source code.
Tree representing an import in the source code.
See also documentation onSelector.
Type tree representing an inferred type
Tree representing the scope of an inlined tree
Constant Int value
Type of the definition of a method taking a single list of type or term parameters
Type of the definition of a method taking a single list of type or term parameters
Type tree representing a lambda abstraction type
Tree representing a literal value in the source code
Constant Long value
Tree representing a pattern matchx match { ... } in the source code
Case of aMatchType containing patterncase P => R.
Case of aMatchType containing patterncase P => R.
Note: cases with type bindings are represented nested in aTypeLambda.
Type matchT match { case U => ... }
Type tree representing a type match
Type of the definition of a method taking a single list of type or term parameters
Type of the definition of a method taking a single list of type or term parameters
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.
Tree representing an argument passed with an explicit name. Such asarg1 = x infoo(arg1 = x)
Tree representing an argument passed with an explicit name. Such asarg1 = x infoo(arg1 = x)
Type of a reference to a type or term symbol
Tree representingnew in the source code
NoPrefix for a type selection
Constant null value
Omit import/export selector:.{bar => _} inimport foo.{bar => _}
Union typeT | U
Tree representing a package clause in the source code
Tree representing a package clause in the source code
package foo { // package stats}or
package foo.bar// package statsA parameter clause[X1, ..., Xn] or(x1: X1, ..., xn: Xx)
A parameter clause[X1, ..., Xn] or(x1: X1, ..., xn: Xx)
[X1, ..., Xn] are represented withTypeParamClause and(x1: X1, ..., xn: Xx) are represented withTermParamClause
ParamClause encodes the following enumeration
import scala.quoted.*def inQuotes(using Quotes) = { val q: Quotes = summon[Quotes] import q.reflect.*enum ParamClause: case TypeParamClause(params: List[TypeDef]) case TermParamClause(params: List[ValDef])}Type of a parameter reference
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 in a source file
A type that is recursively definedthis
A type that is recursively defined
Tree representing a reference to definition
Type tree representing a type refinement
A type with a type refinementT { type U }
Rename import/export selector:.{bar => baz} inimport foo.{bar => baz}
Tree representing a variable argument list in the source code.
Tree representing a variable argument list in the source code.
This tree is used to encode varargs terms. The Repeated encapsulates the sequence of the elements but needs to be wrapped in ascala.<repeated>[T] (seedefn.RepeatedParamClass). For example the arguments1, 2 ofList.apply(1, 2) can be represented as follows:
import scala.quoted._def inQuotes(using Quotes) = { val q: Quotes = summon[Quotes] import q.reflect._val intArgs = List(Literal(IntConstant(1)), Literal(IntConstant(2)))Typed( Repeated(intArgs, TypeTree.of[Int]), Inferred(defn.RepeatedParamClass.typeRef.appliedTo(TypeRepr.of[Int])))}Tree representing areturn in the source code
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
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
Import/Export selectors:
Import/Export selectors:
.bar inimport foo.bar.{bar => baz} inexport foo.{bar => baz}.{bar => _} inimport foo.{bar => _}.given/.{given T} inexport foo.given/import foo.{given T}Constant Short value
The signature of a method
Simple import/export selector:.bar inimport foo.bar
Type tree representing a singleton type
Scala source file
Tree representing a statement in the source code
Constant String value
Tree representing a summoning matchsummonFrom { ... } in the source code
Tree representing a summoning matchsummonFrom { ... } in the source code
Tree representingsuper in the source code
Type of asuper reference
Symbol of a definition. Symbols can be compared with== to know if two definitions are the same.
Symbol of a definition. Symbols can be compared with== to know if two definitions are the same.
Tree representing an expression in the source code
A term parameter clause(x1: X1, ..., xn: Xx) Can also be(implicit X1, ..., Xn),(given X1, ..., Xn) or(given x1: X1, ..., xn: Xn)
A term parameter clause(x1: X1, ..., xn: Xx) Can also be(implicit X1, ..., Xn),(given X1, ..., Xn) or(given x1: X1, ..., xn: Xn)
Type of a reference to a term symbol
Tree representingthis orC.this in the source code
Type ofthis
Tree representing code written in the source
Tree representing a try catchtry x catch { ... } finally { ... } in the source code
Tree representing a try catchtry x catch { ... } finally { ... } in the source code
Tree representing an application of type arguments
Type tree representing a type binding
Type tree within a block with aliases{ type U1 = ... ; T[U1, U2] }
Type bounds
Type tree representing a type bound written in the source
Branch of a type pattern match
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 tree representing a reference to definition with a given name
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.
A type parameter clause[X1, ..., Xn]
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 of a reference to a type symbol
A type, type constructors, type bounds or NoPrefix
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 tree representing a type written in the source
Tree representing a type ascriptionx: T in the source code.
Tree representing a type ascriptionx: T in the source code.
Also represents a pattern that contains a termx. Other: T patterns use the more generalTypedOrTest.
Tree representing a type ascription or type test patternx: T in the source code.
Tree representing a type ascription or type test patternx: T in the source code.
Pattern representing aXyz(...) unapply.
Constant Unit value
Tree representing a value definition in the source code. This includesval,lazy val,var,object and parameter definitions.
Tree representing a value definition in the source code. This includesval,lazy val,var,object and parameter definitions.
Tree representing a value or method definition in the source code. This includesdef,val,lazy val,var,object and parameter definitions.
Tree representing a value or method definition in the source code. This includesdef,val,lazy val,var,object and parameter definitions.
Tree representing a while loop
Pattern representing a_ wildcard.
Type tree representing wildcard type bounds written in the source. The wildcard type_ (for example in inList[_]) will be a type tree that represents a type but hasTypeBounds inside.
Type tree representing wildcard type bounds written in the source. The wildcard type_ (for example in inList[_]) will be a type tree that represents a type but hasTypeBounds inside.
Module object oftype Alternatives
Module object oftype AndType
Module object oftype Annotated
Module object oftype AnnotatedType
Module object oftype Applied
Module object oftype AppliedType
Module object oftype Apply
Module object oftype Assign
Module object oftype Bind
Module object oftype Block
Module object oftype BooleanConstant
Module object oftype ByName
Module object oftype ByNameType
Module object oftype ByteConstant
Module object oftype CaseDef
Module object oftype CharConstant
Module object oftype ClassDef
Module object oftype ClassOfConstant
Module object oftype Closure
Module object oftype CompilationInfo
Constant value represented as the constant itself
Module object oftype ConstantType
Module object oftype DefDef
Module object oftype Definition
Module object oftype DoubleConstant
Module object oftype Export
Module object oftype Flags
Module object oftype FlexibleType
Module object oftype FloatConstant
Module object oftype GivenSelector
Module object oftype Ident
Module object oftype If
Module object oftype Implicits
Module object oftype Import
Module object oftype Inferred
Module object oftype Inlined
Module object oftype IntConstant
A lambda(...) => ... in the source code is represented as a local method and a closure:
A lambda(...) => ... in the source code is represented as a local method and a closure:
{ def m(...) = ... closure(m)}Due to the encoding, in pattern matches the case forLambda should come before the case forBlock to avoid mishandling ofLambda.
Module object oftype LambdaTypeTree
Module object oftype Literal
Module object oftype LongConstant
Module object oftype Match
Module object oftype MatchCase
Module object oftype MatchType
Module object oftype MatchTypeTree
Module object oftype MethodType
Module object oftype NamedArg
Module object oftype New
Module object oftype NoPrefix
Module object oftype NullConstant
Module object oftype OmitSelector
Module object oftype OrType
Module object oftype PackageClause
Module object oftype ParamClause
Module object oftype ParamRef
Module object oftype PolyType
Module object oftype Position
Module object oftype Printer. Contains custom printers such asTreeCode,TreeAnsiCode,TreeCases,TypeReprCode, ...,SymbolFullName andFlagsCombination.
Module object oftype Printer. Contains custom printers such asTreeCode,TreeAnsiCode,TreeCases,TypeReprCode, ...,SymbolFullName andFlagsCombination.
Module object oftype RecursiveThis
Module object oftype RecursiveType
Module object oftype Ref
Module object oftype Refined
Module object oftype Refinement
Module object oftype RenameSelector
Module object oftype Repeated
Module object oftype Return
Module object oftype Select
Module object oftype SelectOuter
Module object oftype Selector
Module object oftype ShortConstant
Module object oftype Signature
Module object oftype SimpleSelector
Module object oftype Singleton
Module object oftype SourceFile
Module object oftype StringConstant
Module object oftype SummonFrom
Module object oftype Super
Module object oftype SuperType
Module object oftype Symbol
Module object oftype Term
Module object oftype TermParamClause
Module object oftype TermRef
Module object oftype This
Module object oftype ThisType
Module object oftype Tree
Module object oftype Try
Module object oftype TypeApply
Module object oftype TypeBind
Module object oftype TypeBlock
Module object oftype TypeBounds
Module object oftype TypeBoundsTree
Module object oftype TypeCaseDef
Module object oftype TypeDef
Module object oftype TypeIdent
Module object oftype TypeLambda
Module object oftype TypeParamClause
Module object oftype TypeProjection
Module object oftype TypeRef
Module object oftype TypeRepr
Module object oftype TypeSelect
Module object oftype TypeTree
Module object oftype Typed
Module object oftype TypedOrTest
Module object oftype Unapply
Module object oftype UnitConstant
Module object oftype ValDef
Module object oftype While
Module object oftype Wildcard
Module object oftype WildcardTypeTree
A value containing all standard definitions
Module containing error and warning reporting.
Makes extension methods onAlternatives available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anAlternatives
TypeTest that allows testing at runtime in a pattern match if aTree is anAlternatives
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anAmbiguousImplicits
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anAmbiguousImplicits
Makes extension methods onAndOrType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAndOrType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAndOrType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAndType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAndType
Makes extension methods onAnnotated available without any imports
Makes extension methods onAnnotatedType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anAnnotated
TypeTest that allows testing at runtime in a pattern match if aTree is anAnnotated
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAnnotatedType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAnnotatedType
Makes extension methods onApplied available without any imports
Makes extension methods onAppliedType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anApplied
TypeTest that allows testing at runtime in a pattern match if aTree is anApplied
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAppliedType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anAppliedType
Makes extension methods onApply available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anApply
TypeTest that allows testing at runtime in a pattern match if aTree is anApply
Makes extension methods onAssign available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anAssign
TypeTest that allows testing at runtime in a pattern match if aTree is anAssign
Makes extension methods onBind available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aBind
TypeTest that allows testing at runtime in a pattern match if aTree is aBind
Makes extension methods onBlock available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aBlock
TypeTest that allows testing at runtime in a pattern match if aTree is aBlock
TypeTest that allows testing at runtime in a pattern match if aConstant is aBooleanConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aBooleanConstant
Makes extension methods onByName available without any imports
Makes extension methods onByNameType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aByName
TypeTest that allows testing at runtime in a pattern match if aTree is aByName
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aByNameType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aByNameType
TypeTest that allows testing at runtime in a pattern match if aConstant is aByteConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aByteConstant
Makes extension methods onCaseDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aCaseDef
TypeTest that allows testing at runtime in a pattern match if aTree is aCaseDef
TypeTest that allows testing at runtime in a pattern match if aConstant is aCharConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aCharConstant
Makes extension methods onClassDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aClassDef
TypeTest that allows testing at runtime in a pattern match if aTree is aClassDef
TypeTest that allows testing at runtime in a pattern match if aConstant is aClassOfConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aClassOfConstant
Makes extension methods onClosure available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aClosure
TypeTest that allows testing at runtime in a pattern match if aTree is aClosure
Makes extension methods onConstant available without any imports
Default pinter forConstant used when callingconst.show
Makes extension methods onConstantType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aConstantType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aConstantType
Makes extension methods onDefDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aDefDef
TypeTest that allows testing at runtime in a pattern match if aTree is aDefDef
Makes extension methods onDefinition available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aDefinition
TypeTest that allows testing at runtime in a pattern match if aTree is aDefinition
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is aDivergingImplicit
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is aDivergingImplicit
TypeTest that allows testing at runtime in a pattern match if aConstant is aDoubleConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aDoubleConstant
Makes extension methods onExport available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anExport
TypeTest that allows testing at runtime in a pattern match if aTree is anExport
Makes extension methods onFlags available without any imports
Makes extension methods onFlexibleType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aFlexibleType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aFlexibleType
TypeTest that allows testing at runtime in a pattern match if aConstant is aFloatConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aFloatConstant
Makes extension methods onGivenSelector available without any imports
TypeTest that allows testing at runtime in a pattern match if anSelector is aGivenSelector
TypeTest that allows testing at runtime in a pattern match if anSelector is aGivenSelector
Makes extension methods onIdent available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anIdent
TypeTest that allows testing at runtime in a pattern match if aTree is anIdent
Makes extension methods onIf available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anIf
TypeTest that allows testing at runtime in a pattern match if aTree is anIf
Makes extension methods onImplicitSearchFailure available without any imports
Makes extension methods onImplicitSearchFailure available without any imports
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anImplicitSearchFailure
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anImplicitSearchFailure
Makes extension methods onImplicitSearchSuccess available without any imports
Makes extension methods onImplicitSearchSuccess available without any imports
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anImplicitSearchSuccess
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is anImplicitSearchSuccess
Makes extension methods onImport available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anImport
TypeTest that allows testing at runtime in a pattern match if aTree is anImport
TypeTest that allows testing at runtime in a pattern match if aTree is anInferred
TypeTest that allows testing at runtime in a pattern match if aTree is anInferred
Makes extension methods onInlined available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anInlined
TypeTest that allows testing at runtime in a pattern match if aTree is anInlined
TypeTest that allows testing at runtime in a pattern match if aConstant is aIntConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aIntConstant
Makes extension methods onLambdaType available without any imports
Makes extension methods onLambdaTypeTree available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aLambdaTypeTree
TypeTest that allows testing at runtime in a pattern match if aTree is aLambdaTypeTree
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aLambdaType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aLambdaType
Makes extension methods onLiteral available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aLiteral
TypeTest that allows testing at runtime in a pattern match if aTree is aLiteral
TypeTest that allows testing at runtime in a pattern match if aConstant is aLongConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aLongConstant
Makes extension methods onMatchCase available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMatchCase
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMatchCase
Makes extension methods onMatch available without any imports
Makes extension methods onMatchType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aMatch
TypeTest that allows testing at runtime in a pattern match if aTree is aMatch
Makes extension methods onMatchTypeTree available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aMatchTypeTree
TypeTest that allows testing at runtime in a pattern match if aTree is aMatchTypeTree
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMatchType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMatchType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMethodOrPoly
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMethodOrPoly
Makes extension methods onMethodType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMethodType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aMethodType
Makes extension methods onNamedArg available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aNamedArg
TypeTest that allows testing at runtime in a pattern match if aTree is aNamedArg
Makes extension methods onNamedType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aNamedType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aNamedType
Makes extension methods onNew available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aNew
TypeTest that allows testing at runtime in a pattern match if aTree is aNew
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is aNoMatchingImplicits
TypeTest that allows testing at runtime in a pattern match if anImplicitSearchResult is aNoMatchingImplicits
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aNoPrefix
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aNoPrefix
TypeTest that allows testing at runtime in a pattern match if aConstant is aNullConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aNullConstant
Makes extension methods onOmitSelector available without any imports
TypeTest that allows testing at runtime in a pattern match if aSelector is anOmitSelector
TypeTest that allows testing at runtime in a pattern match if aSelector is anOmitSelector
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anOrType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is anOrType
Makes extension methods onPackageClause available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aPackageClause
TypeTest that allows testing at runtime in a pattern match if aTree is aPackageClause
Makes extension methods onParamClause available without any imports
Makes extension methods onParamRef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aParamRef
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aParamRef
Makes extension methods onPolyType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aPolyType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aPolyType
Makes extension methods onPosition available without any imports
Makes extension methods onRecursiveThis available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRecursiveThis
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRecursiveThis
Makes extension methods onRecursiveType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRecursiveType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRecursiveType
TypeTest that allows testing at runtime in a pattern match if aTree is aRef
TypeTest that allows testing at runtime in a pattern match if aTree is aRef
Makes extension methods onRefined available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aRefined
TypeTest that allows testing at runtime in a pattern match if aTree is aRefined
Makes extension methods onRefinement available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRefinement
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aRefinement
Makes extension methods onRenameSelector available without any imports
TypeTest that allows testing at runtime in a pattern match if aSelector is aRenameSelector
TypeTest that allows testing at runtime in a pattern match if aSelector is aRenameSelector
Makes extension methods onRepeated available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aRepeated
TypeTest that allows testing at runtime in a pattern match if aTree is aRepeated
Makes extension methods onReturn available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aReturn
TypeTest that allows testing at runtime in a pattern match if aTree is aReturn
Makes extension methods onSelect available without any imports
Makes extension methods onSelectOuter available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aSelectOuter
TypeTest that allows testing at runtime in a pattern match if aTree is aSelectOuter
TypeTest that allows testing at runtime in a pattern match if aTree is aSelect
TypeTest that allows testing at runtime in a pattern match if aTree is aSelect
TypeTest that allows testing at runtime in a pattern match if aConstant is aShortConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aShortConstant
Makes extension methods onSignature available without any imports
Makes extension methods onSimpleSelector available without any imports
TypeTest that allows testing at runtime in a pattern match if aSelector is aSimpleSelector
TypeTest that allows testing at runtime in a pattern match if aSelector is aSimpleSelector
Makes extension methods onSingleton available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aSingleton
TypeTest that allows testing at runtime in a pattern match if aTree is aSingleton
Makes extension methods onSourceFile available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aStatement
TypeTest that allows testing at runtime in a pattern match if aTree is aStatement
TypeTest that allows testing at runtime in a pattern match if aConstant is aStringConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aStringConstant
Makes extension methods onSummonFrom available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aSummonFrom
TypeTest that allows testing at runtime in a pattern match if aTree is aSummonFrom
Makes extension methods onSuper available without any imports
Makes extension methods onSuperType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aSuper
TypeTest that allows testing at runtime in a pattern match if aTree is aSuper
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aSuperType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aSuperType
Makes extension methods onSymbol available without any imports
Makes extension methods onTerm available without any imports
Makes extension methods onTermParamClause available without any imports
Makes extension methods onTermParamClause available without any imports
TypeTest that allows testing at runtime in a pattern match if aParamClause is aTermParamClause
TypeTest that allows testing at runtime in a pattern match if aParamClause is aTermParamClause
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTermRef
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTermRef
TypeTest that allows testing at runtime in a pattern match if aTree is aTerm
TypeTest that allows testing at runtime in a pattern match if aTree is aTerm
Makes extension methods onThis available without any imports
Makes extension methods onThisType available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aThis
TypeTest that allows testing at runtime in a pattern match if aTree is aThis
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aThisType
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aThisType
Makes extension methods onTree available without any imports
Default pinter forTree used when callingtree.show
Makes extension methods onTry available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTry
TypeTest that allows testing at runtime in a pattern match if aTree is aTry
Makes extension methods onTypeApply available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeApply
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeApply
Makes extension methods onTypeBind available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBind
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBind
Makes extension methods onTypeBlock available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBlock
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBlock
Makes extension methods onTypeBounds available without any imports
Makes extension methods onTypeBoundsTree available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBoundsTree
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeBoundsTree
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeBounds
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeBounds
Makes extension methods onTypeCaseDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeCaseDef
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeCaseDef
Makes extension methods onTypeDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeDef
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeDef
Makes extension methods onTypeIdent available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeIdent
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeIdent
Makes extension methods onTypeLambda available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeLambda
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeLambda
Makes extension methods onTypeParamClause available without any imports
Makes extension methods onTypeParamClause available without any imports
TypeTest that allows testing at runtime in a pattern match if aParamClause is aTypeParamClause
TypeTest that allows testing at runtime in a pattern match if aParamClause is aTypeParamClause
Makes extension methods onTypeProjection available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeProjection
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeProjection
Makes extension methods onTypeRef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeRef
TypeTest that allows testing at runtime in a pattern match if aTypeRepr is aTypeRef
Makes extension methods onTypeRepr available without any imports
Default pinter forTypeRepr used when callingtpe.show
Makes extension methods onTypeSelect available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeSelect
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeSelect
Makes extension methods onTypeTree available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeTree
TypeTest that allows testing at runtime in a pattern match if aTree is aTypeTree
Makes extension methods onTyped available without any imports
Makes extension methods onTypedOrTest available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aTypedOrTest
TypeTest that allows testing at runtime in a pattern match if aTree is aTypedOrTest
TypeTest that allows testing at runtime in a pattern match if aTree is aTyped
TypeTest that allows testing at runtime in a pattern match if aTree is aTyped
Makes extension methods onUnapply available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is anUnapply
TypeTest that allows testing at runtime in a pattern match if aTree is anUnapply
TypeTest that allows testing at runtime in a pattern match if aConstant is aUnitConstant
TypeTest that allows testing at runtime in a pattern match if aConstant is aUnitConstant
Makes extension methods onValDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aValDef
TypeTest that allows testing at runtime in a pattern match if aTree is aValDef
Makes extension methods onValOrDefDef available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aValOrDefDef
TypeTest that allows testing at runtime in a pattern match if aTree is aValOrDefDef
Makes extension methods onWhile available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aWhile
TypeTest that allows testing at runtime in a pattern match if aTree is aWhile
TypeTest that allows testing at runtime in a pattern match if aTree is aWildcard
TypeTest that allows testing at runtime in a pattern match if aTree is aWildcard
Makes extension methods onWildcardTypeTree available without any imports
Makes extension methods onWildcardTypeTree available without any imports
TypeTest that allows testing at runtime in a pattern match if aTree is aWildcardTypeTree
TypeTest that allows testing at runtime in a pattern match if aTree is aWildcardTypeTree