reflectModule

Low-level Typed AST metaprogramming API.

Provides all functionality related to AST-based metaprogramming.

Each type XYZ in the API is defined as an abstract type type XYZ. Methods on XYZ are provided by a given XYZMethods which implements extension methods on XYZ in the trait XYZMethods. The XYZ module is defined by a val XYZ: XYZModule which contains the methods defined in XYZModule. Type tests (TypeTest) are also given to perform subtype checks on these types.

Type hierarchy


+- Tree -+- PackageClause
         |
         +- Statement -+- Import
         |             +- Export
         |             +- Definition --+- ClassDef
         |             |               +- TypeDef
         |             |               +- 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

+- Selector -+- SimpleSelector
             +- RenameSelector
             +- OmitSelector
             +- GivenSelector

+- Signature

+- Position

+- SourceFile

+- Constant -+- BooleanConstant
             +- ByteConstant
             +- ShortConstant
             +- IntConstant
             +- LongConstant
             +- FloatConstant
             +- DoubleConstant
             +- CharConstant
             +- StringConstant
             +- UnitConstant
             +- NullConstant
             +- ClassOfConstant
+- Symbol

+- Flags

class Object
trait Matchable
class Any

Type members

Classlikes

Extension methods of Alternatives

Extension methods of Alternatives

Methods of the module object val Alternatives

Methods of the module object val Alternatives

Extension methods of AndOrType

Extension methods of AndOrType

Methods of the module object val AndType

Methods of the module object val AndType

Extension methods of Annotated

Extension methods of Annotated

Methods of the module object val Annotated

Methods of the module object val Annotated

Extension methods of AnnotatedType

Extension methods of AnnotatedType

Methods of the module object val AnnotatedType

Methods of the module object val AnnotatedType

Extension methods of Applied

Extension methods of Applied

Methods of the module object val Applied

Methods of the module object val Applied

Extension methods of AppliedType

Extension methods of AppliedType

Methods of the module object val AppliedType

Methods of the module object val AppliedType

Extension methods of Apply

Extension methods of Apply

Methods of the module object val Apply

Methods of the module object val Apply

Extension methods of Assign

Extension methods of Assign

Methods of the module object val Assign

Methods of the module object val Assign

Extension methods of Bind

Extension methods of Bind

Methods of the module object val Bind

Methods of the module object val Bind

Extension methods of Block

Extension methods of Block

Methods of the module object val Block

Methods of the module object val Block

Methods of the module object val BooleanConstant

Methods of the module object val BooleanConstant

Extension methods of ByName

Extension methods of ByName

Methods of the module object val ByName

Methods of the module object val ByName

Extension methods of ByNameType

Extension methods of ByNameType

Methods of the module object val ByNameType

Methods of the module object val ByNameType

Methods of the module object val ByteConstant

Methods of the module object val ByteConstant

Extension methods of CaseDef

Extension methods of CaseDef

Methods of the module object val CaseDef

Methods of the module object val CaseDef

Methods of the module object val CharConstant

Methods of the module object val CharConstant

Extension methods of ClassDef

Extension methods of ClassDef

Methods of the module object val ClassDef

Methods of the module object val ClassDef

Methods of the module object val ClassOf

Methods of the module object val ClassOf

Extension methods of Closure

Extension methods of Closure

Methods of the module object val Closure

Methods of the module object val Closure

Methods of the module object val CompilationInfo

Methods of the module object val CompilationInfo

Extension methods of Constant

Extension methods of Constant

Constant value represented as the constant itself

Constant value represented as the constant itself

Extension methods of ConstantType

Extension methods of ConstantType

Methods of the module object val Type

Methods of the module object val Type

Extension methods of DefDef

Extension methods of DefDef

Methods of the module object val DefDef

Methods of the module object val DefDef

Extension methods of Definition

Extension methods of Definition

Methods of the module object val Definition

Methods of the module object val Definition

Methods of the module object val DoubleConstant

Methods of the module object val DoubleConstant

Extension methods of Export

Extension methods of Export

Methods of the module object val Export

Methods of the module object val Export

Extension methods of Flags

Extension methods of Flags

Methods of the module object val Flags

Methods of the module object val Flags

Methods of the module object val FloatConstant

Methods of the module object val FloatConstant

Extension methods of GivenSelector

Extension methods of GivenSelector

Methods of the module object val GivenSelector

Methods of the module object val GivenSelector

Extension methods of Ident

Extension methods of Ident

Methods of the module object val Ident

Methods of the module object val Ident

trait IfMethods

Extension methods of If

Extension methods of If

trait IfModule

Methods of the module object val If

Methods of the module object val If

Extension methods of ImplicitSearchFailure

Extension methods of ImplicitSearchFailure

Extension methods of ImplicitSearchSuccess

Extension methods of ImplicitSearchSuccess

Methods of the module object val Implicits

Methods of the module object val Implicits

Extension methods of Import

Extension methods of Import

Methods of the module object val Import

Methods of the module object val Import

Methods of the module object val Inferred

Methods of the module object val Inferred

Extension methods of Inlined

Extension methods of Inlined

Methods of the module object val Inlined

Methods of the module object val Inlined

Methods of the module object val IntConstant

Methods of the module object val IntConstant

Methods of the module object val Lambda

Methods of the module object val Lambda

Extension methods of LambdaType

Extension methods of LambdaType

Extension methods of LambdaTypeTree

Extension methods of LambdaTypeTree

Methods of the module object val LambdaTypeTree

Methods of the module object val LambdaTypeTree

Extension methods of Literal

Extension methods of Literal

Methods of the module object val Literal

Methods of the module object val Literal

Methods of the module object val LongConstant

Methods of the module object val LongConstant

Extension methods of MatchCase

Extension methods of MatchCase

Methods of the module object val MatchCase

Methods of the module object val MatchCase

Extension methods of Match

Extension methods of Match

Methods of the module object val Match

Methods of the module object val Match

Extension methods of MatchType

Extension methods of MatchType

Methods of the module object val MatchType

Methods of the module object val MatchType

Extension methods of MatchTypeTree

Extension methods of MatchTypeTree

Methods of the module object val MatchTypeTree

Methods of the module object val MatchTypeTree

Extension methods of MethodType

Extension methods of MethodType

Methods of the module object val MethodType

Methods of the module object val MethodType

Extension methods of NamedArg

Extension methods of NamedArg

Methods of the module object val NamedArg

Methods of the module object val NamedArg

Extension methods of NamedType

Extension methods of NamedType

Extension methods of New

Extension methods of New

trait NewModule

Methods of the module object val New

Methods of the module object val New

Methods of the module object val NoPrefix

Methods of the module object val NoPrefix

Methods of the module object val NullConstant

Methods of the module object val NullConstant

Extension methods of OmitSelector

Extension methods of OmitSelector

Methods of the module object val OmitSelector

Methods of the module object val OmitSelector

Methods of the module object val OrType

Methods of the module object val OrType

Extension methods of PackageClause

Extension methods of PackageClause

Methods of the module object val PackageClause

Methods of the module object val PackageClause

Extension methods of ParamClause

Extension methods of ParamClause

Methods of the module object val ParamClause

Methods of the module object val ParamClause

Extension methods of ParamRef

Extension methods of ParamRef

Methods of the module object val ParamRef

Methods of the module object val ParamRef

Extension methods of PolyType

Extension methods of PolyType

Methods of the module object val PolyType

Methods of the module object val PolyType

Extension methods of Position

Extension methods of Position

Methods of the module object val Position

Methods of the module object val Position

trait Printer[T]

Type class used in show methods to provide customizable String representations

Type class used in show methods to provide customizable String representations

Methods of the module object val Printer

Methods of the module object val Printer

Extension methods of RecursiveThis

Extension methods of RecursiveThis

Methods of the module object val RecursiveThis

Methods of the module object val RecursiveThis

Extension methods of RecursiveType

Extension methods of RecursiveType

Methods of the module object val RecursiveType

Methods of the module object val RecursiveType

trait RefModule

Methods of the module object val Ref

Methods of the module object val Ref

Extension methods of Refined

Extension methods of Refined

Methods of the module object val Refined

Methods of the module object val Refined

Extension methods of Refinement

Extension methods of Refinement

Methods of the module object val Refinement

Methods of the module object val Refinement

Extension methods of RenameSelector

Extension methods of RenameSelector

Methods of the module object val RenameSelector

Methods of the module object val RenameSelector

Extension methods of Repeated

Extension methods of Repeated

Methods of the module object val Repeated

Methods of the module object val Repeated

Extension methods of Return

Extension methods of Return

Methods of the module object val Return

Methods of the module object val Return

Extension methods of Select

Extension methods of Select

Methods of the module object val Select

Methods of the module object val Select

Extension methods of SelectOuter

Extension methods of SelectOuter

Methods of the module object val SelectOuter

Methods of the module object val SelectOuter

Methods of the module object val Selector

Methods of the module object val Selector

Methods of the module object val Short

Methods of the module object val Short

Extension methods of Signature

Extension methods of Signature

Methods of the module object val Signature

Methods of the module object val Signature

Extension methods of SimpleSelector

Extension methods of SimpleSelector

Methods of the module object val SimpleSelector

Methods of the module object val SimpleSelector

Extension methods of Singleton

Extension methods of Singleton

Methods of the module object val Singleton

Methods of the module object val Singleton

Extension methods of SourceFile

Extension methods of SourceFile

Methods of the module object val SourceFile

Methods of the module object val SourceFile

Methods of the module object val StringConstant

Methods of the module object val StringConstant

Extension methods of SummonFrom

Extension methods of SummonFrom

Methods of the module object val SummonFrom

Methods of the module object val SummonFrom

Extension methods of Super

Extension methods of Super

Methods of the module object val Super

Methods of the module object val Super

Extension methods of SuperType

Extension methods of SuperType

Methods of the module object val SuperType

Methods of the module object val SuperType

Extension methods of Symbol

Extension methods of Symbol

Methods of the module object val Symbol

Methods of the module object val Symbol

Extension methods of Term

Extension methods of Term

Methods of the module object val Term

Methods of the module object val Term

Extension methods of TermParamClause

Extension methods of TermParamClause

Methods of the module object val TermParamClause

Methods of the module object val TermParamClause

Methods of the module object val TermRef

Methods of the module object val TermRef

Extension methods of This

Extension methods of This

Methods of the module object val This

Methods of the module object val This

Extension methods of ThisType

Extension methods of ThisType

Methods of the module object val ThisType

Methods of the module object val ThisType

Customizable Tree accumulator.

Customizable Tree accumulator.

Usage:

class MyTreeAccumulator[X] extends TreeAccumulator[X] {
  def foldTree(x: X, tree: Tree)(owner: Symbol): X = ???
}
trait TreeMap

Customizable tree mapper.

Customizable tree mapper.

Usage:

class MyTreeMap extends TreeMap {
  override def transformTree(tree: Tree)(owner: Symbol): Tree = ???
}

Use Symbol.asQuotes to create quotes with the correct owner within the TreeMap.

Extension methods of Tree

Extension methods of Tree

Methods of the module object val Tree

Methods of the module object val Tree

Customizable tree traverser.

Customizable tree traverser.

Usage:

class MyTraverser extends TreeTraverser {
  override def traverseTree(tree: Tree)(owner: Symbol): Unit = ???
}

Extension methods of Try

Extension methods of Try

trait TryModule

Methods of the module object val Try

Methods of the module object val Try

Extension methods of TypeApply

Extension methods of TypeApply

Methods of the module object val TypeApply

Methods of the module object val TypeApply

Extension methods of TypeBind

Extension methods of TypeBind

Methods of the module object val TypeBind

Methods of the module object val TypeBind

Extension methods of TypeBlock

Extension methods of TypeBlock

Methods of the module object val TypeBlock

Methods of the module object val TypeBlock

Extension methods of TypeBounds

Extension methods of TypeBounds

Methods of the module object val TypeBounds

Methods of the module object val TypeBounds

Extension methods of TypeBoundsTree

Extension methods of TypeBoundsTree

Methods of the module object val TypeBoundsTree

Methods of the module object val TypeBoundsTree

Extension methods of TypeCaseDef

Extension methods of TypeCaseDef

Methods of the module object val TypeCaseDef

Methods of the module object val TypeCaseDef

Extension methods of TypeDef

Extension methods of TypeDef

Methods of the module object val TypeDef

Methods of the module object val TypeDef

Extension methods of TypeIdent

Extension methods of TypeIdent

Methods of the module object val TypeIdent

Methods of the module object val TypeIdent

Extension methods of TypeLambda

Extension methods of TypeLambda

Methods of the module object val TypeLambda

Methods of the module object val TypeLambda

Extension methods of TypeParamClause

Extension methods of TypeParamClause

Methods of the module object val TypeParamClause

Methods of the module object val TypeParamClause

Extension methods of TypeProjection

Extension methods of TypeProjection

Methods of the module object val TypeProjection

Methods of the module object val TypeProjection

Extension methods of TypeRef

Extension methods of TypeRef

Methods of the module object val TypeRef

Methods of the module object val TypeRef

Extension methods of TypeRepr

Extension methods of TypeRepr

Methods of the module object val TypeRepr

Methods of the module object val TypeRepr

Extension methods of TypeSelect

Extension methods of TypeSelect

Methods of the module object val TypeSelect

Methods of the module object val TypeSelect

Extension methods of TypeTree

Extension methods of TypeTree

Methods of the module object val TypeTree

Methods of the module object val TypeTree

Extension methods of Typed

Extension methods of Typed

Methods of the module object val Typed

Methods of the module object val Typed

@since("3.1")

Extension methods of TypedOrTest

Extension methods of TypedOrTest

@since("3.1")

Methods of the module object val TypedOrTest

Methods of the module object val TypedOrTest

Extension methods of Unapply

Extension methods of Unapply

Methods of the module object val Unapply

Methods of the module object val Unapply

Methods of the module object val UnitConstant

Methods of the module object val UnitConstant

Extension methods of ValDef

Extension methods of ValDef

Methods of the module object val ValDef

Methods of the module object val ValDef

Extension methods of While

Extension methods of While

Methods of the module object val While

Methods of the module object val While

@since("3.1")

Methods of the module object val Wildcard

Methods of the module object val Wildcard

Extension methods of WildcardTypeTree

Extension methods of WildcardTypeTree

Methods of the module object val WildcardTypeTree

Methods of the module object val WildcardTypeTree

Methods of the module object val defn

Methods of the module object val defn

Methods of the module object val report

Methods of the module object val report

Types

Pattern representing X | Y | ... alternatives.

Pattern representing X | Y | ... alternatives.

Intersection type T & U or an union type T | U

Intersection type T & U or an union type T | U

Intersection type T & U

Intersection type T & U

Type tree representing an annotated type

Type tree representing an annotated type

A type with an annotation T @foo

A type with an annotation T @foo

Type tree representing a type application

Type tree representing a type application

A higher kinded type applied to some types T[U]

A higher kinded type applied to some types T[U]

type Apply <: Term

Tree representing an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Applys

Tree representing an application of arguments. It represents a single list of arguments, multiple argument lists will have nested Applys

type Assign <: Term

Tree representing an assignment x = y in the source code

Tree representing an assignment x = y in the source code

type Bind <: Tree

Pattern representing a _ @ _ binding.

Pattern representing a _ @ _ binding.

type Block <: Term

Tree representing a block { ... } in the source code

Tree representing a block { ... } in the source code

Constant Boolean value

Constant Boolean value

Type tree representing a by name parameter

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 as thunk in

type T
def 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

Constant Byte value

type CaseDef <: Tree

Branch of a pattern match or catch clause

Branch of a pattern match or catch clause

Constant Char value

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 a classOf[T]

Constant class value representing a classOf[T]

type Closure <: Term

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) }

type Constant <: AnyRef

Constant value represented as the constant itself

Constant value represented as the constant itself

A singleton type representing a known constant value

A singleton type representing a known constant value

Tree representing a method definition in the source code

Tree representing a method definition in the source code

Tree representing a definition in the source code. It can be ClassDef, TypeDef, DefDef or ValDef

Tree representing a definition in the source code. It can be ClassDef, TypeDef, DefDef or ValDef

Constant Double value

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.

type Flags

FlagSet of a Symbol

FlagSet of a Symbol

Constant Float value

Constant Float value

given import/export selector: .given/.{given T} in import foo.given/export foo.{given T}

given import/export selector: .given/.{given T} in import foo.given/export foo.{given T}

type Ident <: Ref

Tree representing a reference to definition with a given name

Tree representing a reference to definition with a given name

type If <: Term

Tree representing an if/then/else if (...) ... else ... in the source code

Tree representing an if/then/else if (...) ... else ... in the source code

type ImplicitSearchResult <: AnyRef

Result of a given instance search

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 on Selector.

Type tree representing an inferred type

Type tree representing an inferred type

type Inlined <: Term

Tree representing the scope of an inlined tree

Tree representing the scope of an inlined tree

Constant Int value

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

Type tree representing a lambda abstraction type

type Literal <: Term

Tree representing a literal value in the source code

Tree representing a literal value in the source code

Constant Long value

Constant Long value

type Match <: Term

Tree representing a pattern match x match { ... } in the source code

Tree representing a pattern match x match { ... } in the source code

Case of a MatchType containing pattern case P => R.

Case of a MatchType containing pattern case P => R.

Note: cases with type bindings are represented nested in a TypeLambda.

Type match T match { case U => ... }

Type match T match { case U => ... }

Type tree representing a type match

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.

type NamedArg <: Term

Tree representing an argument passed with an explicit name. Such as arg1 = x in foo(arg1 = x)

Tree representing an argument passed with an explicit name. Such as arg1 = x in foo(arg1 = x)

Type of a reference to a type or term symbol

Type of a reference to a type or term symbol

type New <: Term

Tree representing new in the source code

Tree representing new in the source code

NoPrefix for a type selection

NoPrefix for a type selection

Constant null value

Constant null value

Omit import/export selector: .{bar => _} in import foo.{bar => _}

Omit import/export selector: .{bar => _} in import foo.{bar => _}

Union type T | U

Union type T | 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 stats
type ParamClause <: AnyRef

A parameter clause [X1, ..., Xn] or (x1: X1, ..., xn: Xx)

A parameter clause [X1, ..., Xn] or (x1: X1, ..., xn: Xx)

[X1, ..., Xn] are represented with TypeParamClause and (x1: X1, ..., xn: Xx) are represented with TermParamClause

ParamClause encodes the following enumeration

enum ParamClause:
  case TypeParamClause(params: List[TypeDef])
  case TermParamClause(params: List[ValDef])

Type of a parameter reference

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.

type Position <: AnyRef

Position in a source file

Position in a source file

A type that is recursively defined this

A type that is recursively defined this

A type that is recursively defined

A type that is recursively defined

type Ref <: Term

Tree representing a reference to definition

Tree representing a reference to definition

Type tree representing a type refinement

Type tree representing a type refinement

A type with a type refinement T { type U }

A type with a type refinement T { type U }

Rename import/export selector: .{bar => baz} in import foo.{bar => baz}

Rename import/export selector: .{bar => baz} in import foo.{bar => baz}

type Repeated <: Term

Tree representing a variable argument list in the source code

Tree representing a variable argument list in the source code

type Return <: Term

Tree representing a return in the source code

Tree representing a return in the source code

type Select <: Ref

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

type Selector <: AnyRef

Import/Export selectors:

Import/Export selectors:

  • SimpleSelector: .bar in import foo.bar
  • RenameSelector: .{bar => baz} in export foo.{bar => baz}
  • OmitSelector: .{bar => _} in import foo.{bar => _}
  • GivenSelector: .given/.{given T} in export foo.given/import foo.{given T}

Constant Short value

Constant Short value

type Signature <: AnyRef

The signature of a method

The signature of a method

Simple import/export selector: .bar in import foo.bar

Simple import/export selector: .bar in import foo.bar

Type tree representing a singleton type

Type tree representing a singleton type

type SourceFile <: AnyRef

Scala source file

Scala source file

type Statement <: Tree

Tree representing a statement in the source code

Tree representing a statement in the source code

Constant String value

Constant String value

Tree representing a summoning match summonFrom { ... } in the source code

Tree representing a summoning match summonFrom { ... } in the source code

type Super <: Term

Tree representing super in the source code

Tree representing super in the source code

Type of a super reference

Type of a super reference

type Symbol <: AnyRef

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.

type Term <: Statement

Tree representing an expression in the source code

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

Type of a reference to a term symbol

type This <: Term

Tree representing this or C.this in the source code

Tree representing this or C.this in the source code

Type of this

Type of this

type Tree <: AnyRef

Tree representing code written in the source

Tree representing code written in the source

type Try <: Term

Tree representing a try catch try x catch { ... } finally { ... } in the source code

Tree representing a try catch try x catch { ... } finally { ... } in the source code

type TypeApply <: Term

Tree representing an application of type arguments

Tree representing an application of type arguments

Type tree representing a type binding

Type tree representing a type binding

Type tree within a block with aliases { type U1 = ... ; T[U1, U2] }

Type tree within a block with aliases { type U1 = ... ; T[U1, U2] }

Type bounds

Type bounds

Type tree representing a type bound written in the source

Type tree representing a type bound written in the source

Branch of a type pattern match

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 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]

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

Type of a reference to a type symbol

A type, type constructors, type bounds or NoPrefix

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 TypeTree <: Tree

Type tree representing a type written in the source

Type tree representing a type written in the source

Tree representing a type ascription x: T in the source code.

Tree representing a type ascription x: T in the source code.

Also represents a pattern that contains a term x. Other : T patterns use the more general TypedOrTest.

@since("3.1")

Tree representing a type ascription or type test pattern x: T in the source code.

Tree representing a type ascription or type test pattern x: T in the source code.

type Unapply <: Tree

Pattern representing a Xyz(...) unapply.

Pattern representing a Xyz(...) unapply.

Constant Unit value

Constant Unit value

Tree representing a value definition in the source code This includes val, lazy val, var, object and parameter definitions.

Tree representing a value definition in the source code This includes val, lazy val, var, object and parameter definitions.

type While <: Term

Tree representing a while loop

Tree representing a while loop

@since("3.1")
type Wildcard <: Ident

Pattern representing a _ wildcard.

Pattern representing a _ wildcard.

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 TypeBounds inside.

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 TypeBounds inside.

Value members

Abstract fields

Module object of type Alternatives

Module object of type Alternatives

Module object of type AndType

Module object of type AndType

Module object of type Annotated

Module object of type Annotated

Module object of type AnnotatedType

Module object of type AnnotatedType

Module object of type Applied

Module object of type Applied

Module object of type AppliedType

Module object of type AppliedType

Module object of type Apply

Module object of type Apply

Module object of type Assign

Module object of type Assign

Module object of type Bind

Module object of type Bind

Module object of type Block

Module object of type Block

Module object of type BooleanConstant

Module object of type BooleanConstant

Module object of type ByName

Module object of type ByName

Module object of type ByNameType

Module object of type ByNameType

Module object of type ByteConstant

Module object of type ByteConstant

Module object of type CaseDef

Module object of type CaseDef

Module object of type CharConstant

Module object of type CharConstant

Module object of type ClassDef

Module object of type ClassDef

Module object of type ClassOfConstant

Module object of type ClassOfConstant

Module object of type Closure

Module object of type Closure

Module object of type CompilationInfo

Module object of type CompilationInfo

Constant value represented as the constant itself

Constant value represented as the constant itself

Module object of type ConstantType

Module object of type ConstantType

Module object of type DefDef

Module object of type DefDef

Module object of type Definition

Module object of type Definition

Module object of type DoubleConstant

Module object of type DoubleConstant

Module object of type Export

Module object of type Export

Module object of type Flags

Module object of type Flags

Module object of type FloatConstant

Module object of type FloatConstant

Module object of type GivenSelector

Module object of type GivenSelector

Module object of type Ident

Module object of type Ident

Module object of type If

Module object of type If

Module object of type Implicits

Module object of type Implicits

Module object of type Import

Module object of type Import

Module object of type Inferred

Module object of type Inferred

Module object of type Inlined

Module object of type Inlined

Module object of type IntConstant

Module object of type 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)
}
Note:

Due to the encoding, in pattern matches the case for Lambda should come before the case for Block to avoid mishandling of Lambda.

Module object of type LambdaTypeTree

Module object of type LambdaTypeTree

Module object of type Literal

Module object of type Literal

Module object of type LongConstant

Module object of type LongConstant

Module object of type Match

Module object of type Match

Module object of type MatchCase

Module object of type MatchCase

Module object of type MatchType

Module object of type MatchType

Module object of type MatchTypeTree

Module object of type MatchTypeTree

Module object of type MethodType

Module object of type MethodType

Module object of type NamedArg

Module object of type NamedArg

Module object of type New

Module object of type New

Module object of type NoPrefix

Module object of type NoPrefix

Module object of type NullConstant

Module object of type NullConstant

Module object of type OmitSelector

Module object of type OmitSelector

Module object of type OrType

Module object of type OrType

Module object of type PackageClause

Module object of type PackageClause

Module object of type ParamClause

Module object of type ParamClause

Module object of type ParamRef

Module object of type ParamRef

Module object of type PolyType

Module object of type PolyType

Module object of type Position

Module object of type Position

Module object of type Printer. Contains custom printers such as TreeCode, TreeAnsiCode, TreeCases, TypeReprCode, ..., SymbolFullName and FlagsCombination.

Module object of type Printer. Contains custom printers such as TreeCode, TreeAnsiCode, TreeCases, TypeReprCode, ..., SymbolFullName and FlagsCombination.

Module object of type RecursiveThis

Module object of type RecursiveThis

Module object of type RecursiveType

Module object of type RecursiveType

Module object of type Ref

Module object of type Ref

Module object of type Refined

Module object of type Refined

Module object of type Refinement

Module object of type Refinement

Module object of type RenameSelector

Module object of type RenameSelector

Module object of type Repeated

Module object of type Repeated

Module object of type Return

Module object of type Return

Module object of type Select

Module object of type Select

Module object of type SelectOuter

Module object of type SelectOuter

Module object of type Selector

Module object of type Selector

Module object of type ShortConstant

Module object of type ShortConstant

Module object of type Signature

Module object of type Signature

Module object of type SimpleSelector

Module object of type SimpleSelector

Module object of type Singleton

Module object of type Singleton

Module object of type SourceFile

Module object of type SourceFile

Module object of type StringConstant

Module object of type StringConstant

Module object of type SummonFrom

Module object of type SummonFrom

Module object of type Super

Module object of type Super

Module object of type SuperType

Module object of type SuperType

Module object of type Symbol

Module object of type Symbol

Module object of type Term

Module object of type Term

Module object of type TermParamClause

Module object of type TermParamClause

Module object of type TermRef

Module object of type TermRef

Module object of type This

Module object of type This

Module object of type ThisType

Module object of type ThisType

Module object of type Tree

Module object of type Tree

Module object of type Try

Module object of type Try

Module object of type TypeApply

Module object of type TypeApply

Module object of type TypeBind

Module object of type TypeBind

Module object of type TypeBlock

Module object of type TypeBlock

Module object of type TypeBounds

Module object of type TypeBounds

Module object of type TypeBoundsTree

Module object of type TypeBoundsTree

Module object of type TypeCaseDef

Module object of type TypeCaseDef

Module object of type TypeDef

Module object of type TypeDef

Module object of type TypeIdent

Module object of type TypeIdent

Module object of type TypeLambda

Module object of type TypeLambda

Module object of type TypeParamClause

Module object of type TypeParamClause

Module object of type TypeProjection

Module object of type TypeProjection

Module object of type TypeRef

Module object of type TypeRef

Module object of type TypeRepr

Module object of type TypeRepr

Module object of type TypeSelect

Module object of type TypeSelect

Module object of type TypeTree

Module object of type TypeTree

Module object of type Typed

Module object of type Typed

@since("3.1")

Module object of type TypedOrTest

Module object of type TypedOrTest

Module object of type Unapply

Module object of type Unapply

Module object of type UnitConstant

Module object of type UnitConstant

Module object of type ValDef

Module object of type ValDef

Module object of type While

Module object of type While

Module object of type Wildcard

Module object of type Wildcard

Module object of type WildcardTypeTree

Module object of type WildcardTypeTree

A value containing all standard definitions

A value containing all standard definitions

Module containing error and warning reporting.

Module containing error and warning reporting.

Givens

Givens

Makes extension methods on Alternatives available without any imports

Makes extension methods on Alternatives available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Alternatives

TypeTest that allows testing at runtime in a pattern match if a Tree is an Alternatives

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an AmbiguousImplicits

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an AmbiguousImplicits

Makes extension methods on AndOrType available without any imports

Makes extension methods on AndOrType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AndOrType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AndOrType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AndType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AndType

Makes extension methods on Annotated available without any imports

Makes extension methods on Annotated available without any imports

Makes extension methods on AnnotatedType available without any imports

Makes extension methods on AnnotatedType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Annotated

TypeTest that allows testing at runtime in a pattern match if a Tree is an Annotated

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AnnotatedType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AnnotatedType

Makes extension methods on Applied available without any imports

Makes extension methods on Applied available without any imports

Makes extension methods on AppliedType available without any imports

Makes extension methods on AppliedType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Applied

TypeTest that allows testing at runtime in a pattern match if a Tree is an Applied

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AppliedType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an AppliedType

Makes extension methods on Apply available without any imports

Makes extension methods on Apply available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Apply

TypeTest that allows testing at runtime in a pattern match if a Tree is an Apply

Makes extension methods on Assign available without any imports

Makes extension methods on Assign available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Assign

TypeTest that allows testing at runtime in a pattern match if a Tree is an Assign

Makes extension methods on Bind available without any imports

Makes extension methods on Bind available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Bind

TypeTest that allows testing at runtime in a pattern match if a Tree is a Bind

Makes extension methods on Block available without any imports

Makes extension methods on Block available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Block

TypeTest that allows testing at runtime in a pattern match if a Tree is a Block

TypeTest that allows testing at runtime in a pattern match if a Constant is a BooleanConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a BooleanConstant

Makes extension methods on ByName available without any imports

Makes extension methods on ByName available without any imports

Makes extension methods on ByNameType available without any imports

Makes extension methods on ByNameType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a ByName

TypeTest that allows testing at runtime in a pattern match if a Tree is a ByName

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ByNameType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ByNameType

TypeTest that allows testing at runtime in a pattern match if a Constant is a ByteConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a ByteConstant

Makes extension methods on CaseDef available without any imports

Makes extension methods on CaseDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a CaseDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a CaseDef

TypeTest that allows testing at runtime in a pattern match if a Constant is a CharConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a CharConstant

Makes extension methods on ClassDef available without any imports

Makes extension methods on ClassDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a ClassDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a ClassDef

TypeTest that allows testing at runtime in a pattern match if a Constant is a ClassOfConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a ClassOfConstant

Makes extension methods on Closure available without any imports

Makes extension methods on Closure available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Closure

TypeTest that allows testing at runtime in a pattern match if a Tree is a Closure

Makes extension methods on Constant available without any imports

Makes extension methods on Constant available without any imports

Default pinter for Constant used when calling const.show

Default pinter for Constant used when calling const.show

Makes extension methods on ConstantType available without any imports

Makes extension methods on ConstantType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ConstantType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ConstantType

Makes extension methods on DefDef available without any imports

Makes extension methods on DefDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a DefDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a DefDef

Makes extension methods on Definition available without any imports

Makes extension methods on Definition available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Definition

TypeTest that allows testing at runtime in a pattern match if a Tree is a Definition

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is a DivergingImplicit

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is a DivergingImplicit

TypeTest that allows testing at runtime in a pattern match if a Constant is a DoubleConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a DoubleConstant

Makes extension methods on Export available without any imports

Makes extension methods on Export available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Export

TypeTest that allows testing at runtime in a pattern match if a Tree is an Export

Makes extension methods on Flags available without any imports

Makes extension methods on Flags available without any imports

TypeTest that allows testing at runtime in a pattern match if a Constant is a FloatConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a FloatConstant

Makes extension methods on GivenSelector available without any imports

Makes extension methods on GivenSelector available without any imports

TypeTest that allows testing at runtime in a pattern match if an Selector is a GivenSelector

TypeTest that allows testing at runtime in a pattern match if an Selector is a GivenSelector

Makes extension methods on Ident available without any imports

Makes extension methods on Ident available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Ident

TypeTest that allows testing at runtime in a pattern match if a Tree is an Ident

Makes extension methods on If available without any imports

Makes extension methods on If available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an If

TypeTest that allows testing at runtime in a pattern match if a Tree is an If

Makes extension methods on ImplicitSearchFailure available without any imports

Makes extension methods on ImplicitSearchFailure available without any imports

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an ImplicitSearchFailure

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an ImplicitSearchFailure

Makes extension methods on ImplicitSearchSuccess available without any imports

Makes extension methods on ImplicitSearchSuccess available without any imports

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an ImplicitSearchSuccess

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is an ImplicitSearchSuccess

Makes extension methods on Import available without any imports

Makes extension methods on Import available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Import

TypeTest that allows testing at runtime in a pattern match if a Tree is an Import

TypeTest that allows testing at runtime in a pattern match if a Tree is an Inferred

TypeTest that allows testing at runtime in a pattern match if a Tree is an Inferred

Makes extension methods on Inlined available without any imports

Makes extension methods on Inlined available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Inlined

TypeTest that allows testing at runtime in a pattern match if a Tree is an Inlined

TypeTest that allows testing at runtime in a pattern match if a Constant is a IntConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a IntConstant

Makes extension methods on LambdaType available without any imports

Makes extension methods on LambdaType available without any imports

Makes extension methods on LambdaTypeTree available without any imports

Makes extension methods on LambdaTypeTree available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a LambdaTypeTree

TypeTest that allows testing at runtime in a pattern match if a Tree is a LambdaTypeTree

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a LambdaType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a LambdaType

Makes extension methods on Literal available without any imports

Makes extension methods on Literal available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Literal

TypeTest that allows testing at runtime in a pattern match if a Tree is a Literal

TypeTest that allows testing at runtime in a pattern match if a Constant is a LongConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a LongConstant

Makes extension methods on MatchCase available without any imports

Makes extension methods on MatchCase available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MatchCase

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MatchCase

Makes extension methods on Match available without any imports

Makes extension methods on Match available without any imports

Makes extension methods on MatchType available without any imports

Makes extension methods on MatchType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Match

TypeTest that allows testing at runtime in a pattern match if a Tree is a Match

Makes extension methods on MatchTypeTree available without any imports

Makes extension methods on MatchTypeTree available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a MatchTypeTree

TypeTest that allows testing at runtime in a pattern match if a Tree is a MatchTypeTree

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MatchType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MatchType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MethodOrPoly

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MethodOrPoly

Makes extension methods on MethodType available without any imports

Makes extension methods on MethodType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MethodType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a MethodType

Makes extension methods on NamedArg available without any imports

Makes extension methods on NamedArg available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a NamedArg

TypeTest that allows testing at runtime in a pattern match if a Tree is a NamedArg

Makes extension methods on NamedType available without any imports

Makes extension methods on NamedType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a NamedType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a NamedType

Makes extension methods on New available without any imports

Makes extension methods on New available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a New

TypeTest that allows testing at runtime in a pattern match if a Tree is a New

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is a NoMatchingImplicits

TypeTest that allows testing at runtime in a pattern match if an ImplicitSearchResult is a NoMatchingImplicits

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a NoPrefix

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a NoPrefix

TypeTest that allows testing at runtime in a pattern match if a Constant is a NullConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a NullConstant

Makes extension methods on OmitSelector available without any imports

Makes extension methods on OmitSelector available without any imports

TypeTest that allows testing at runtime in a pattern match if a Selector is an OmitSelector

TypeTest that allows testing at runtime in a pattern match if a Selector is an OmitSelector

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an OrType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is an OrType

Makes extension methods on PackageClause available without any imports

Makes extension methods on PackageClause available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a PackageClause

TypeTest that allows testing at runtime in a pattern match if a Tree is a PackageClause

Makes extension methods on ParamClause available without any imports

Makes extension methods on ParamClause available without any imports

Makes extension methods on ParamRef available without any imports

Makes extension methods on ParamRef available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ParamRef

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ParamRef

Makes extension methods on PolyType available without any imports

Makes extension methods on PolyType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a PolyType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a PolyType

Makes extension methods on Position available without any imports

Makes extension methods on Position available without any imports

Makes extension methods on RecursiveThis available without any imports

Makes extension methods on RecursiveThis available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a RecursiveThis

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a RecursiveThis

Makes extension methods on RecursiveType available without any imports

Makes extension methods on RecursiveType available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a RecursiveType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a RecursiveType

TypeTest that allows testing at runtime in a pattern match if a Tree is a Ref

TypeTest that allows testing at runtime in a pattern match if a Tree is a Ref

Makes extension methods on Refined available without any imports

Makes extension methods on Refined available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Refined

TypeTest that allows testing at runtime in a pattern match if a Tree is a Refined

Makes extension methods on Refinement available without any imports

Makes extension methods on Refinement available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a Refinement

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a Refinement

Makes extension methods on RenameSelector available without any imports

Makes extension methods on RenameSelector available without any imports

TypeTest that allows testing at runtime in a pattern match if a Selector is a RenameSelector

TypeTest that allows testing at runtime in a pattern match if a Selector is a RenameSelector

Makes extension methods on Repeated available without any imports

Makes extension methods on Repeated available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Repeated

TypeTest that allows testing at runtime in a pattern match if a Tree is a Repeated

Makes extension methods on Return available without any imports

Makes extension methods on Return available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Return

TypeTest that allows testing at runtime in a pattern match if a Tree is a Return

Makes extension methods on Select available without any imports

Makes extension methods on Select available without any imports

Makes extension methods on SelectOuter available without any imports

Makes extension methods on SelectOuter available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a SelectOuter

TypeTest that allows testing at runtime in a pattern match if a Tree is a SelectOuter

TypeTest that allows testing at runtime in a pattern match if a Tree is a Select

TypeTest that allows testing at runtime in a pattern match if a Tree is a Select

TypeTest that allows testing at runtime in a pattern match if a Constant is a ShortConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a ShortConstant

Makes extension methods on Signature available without any imports

Makes extension methods on Signature available without any imports

Makes extension methods on SimpleSelector available without any imports

Makes extension methods on SimpleSelector available without any imports

TypeTest that allows testing at runtime in a pattern match if a Selector is a SimpleSelector

TypeTest that allows testing at runtime in a pattern match if a Selector is a SimpleSelector

Makes extension methods on Singleton available without any imports

Makes extension methods on Singleton available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Singleton

TypeTest that allows testing at runtime in a pattern match if a Tree is a Singleton

Makes extension methods on SourceFile available without any imports

Makes extension methods on SourceFile available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Statement

TypeTest that allows testing at runtime in a pattern match if a Tree is a Statement

TypeTest that allows testing at runtime in a pattern match if a Constant is a StringConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a StringConstant

Makes extension methods on SummonFrom available without any imports

Makes extension methods on SummonFrom available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a SummonFrom

TypeTest that allows testing at runtime in a pattern match if a Tree is a SummonFrom

Makes extension methods on Super available without any imports

Makes extension methods on Super available without any imports

Makes extension methods on SuperType available without any imports

Makes extension methods on SuperType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Super

TypeTest that allows testing at runtime in a pattern match if a Tree is a Super

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a SuperType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a SuperType

Makes extension methods on Symbol available without any imports

Makes extension methods on Symbol available without any imports

Makes extension methods on Term available without any imports

Makes extension methods on Term available without any imports

Makes extension methods on TermParamClause available without any imports

Makes extension methods on TermParamClause available without any imports

TypeTest that allows testing at runtime in a pattern match if a ParamClause is a TermParamClause

TypeTest that allows testing at runtime in a pattern match if a ParamClause is a TermParamClause

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TermRef

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TermRef

TypeTest that allows testing at runtime in a pattern match if a Tree is a Term

TypeTest that allows testing at runtime in a pattern match if a Tree is a Term

Makes extension methods on This available without any imports

Makes extension methods on This available without any imports

Makes extension methods on ThisType available without any imports

Makes extension methods on ThisType available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a This

TypeTest that allows testing at runtime in a pattern match if a Tree is a This

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ThisType

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a ThisType

Makes extension methods on Tree available without any imports

Makes extension methods on Tree available without any imports

Default pinter for Tree used when calling tree.show

Default pinter for Tree used when calling tree.show

Makes extension methods on Try available without any imports

Makes extension methods on Try available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a Try

TypeTest that allows testing at runtime in a pattern match if a Tree is a Try

Makes extension methods on TypeApply available without any imports

Makes extension methods on TypeApply available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeApply

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeApply

Makes extension methods on TypeBind available without any imports

Makes extension methods on TypeBind available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBind

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBind

Makes extension methods on TypeBlock available without any imports

Makes extension methods on TypeBlock available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBlock

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBlock

Makes extension methods on TypeBounds available without any imports

Makes extension methods on TypeBounds available without any imports

Makes extension methods on TypeBoundsTree available without any imports

Makes extension methods on TypeBoundsTree available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBoundsTree

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeBoundsTree

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeBounds

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeBounds

Makes extension methods on TypeCaseDef available without any imports

Makes extension methods on TypeCaseDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeCaseDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeCaseDef

Makes extension methods on TypeDef available without any imports

Makes extension methods on TypeDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeDef

Makes extension methods on TypeIdent available without any imports

Makes extension methods on TypeIdent available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeIdent

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeIdent

Makes extension methods on TypeLambda available without any imports

Makes extension methods on TypeLambda available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeLambda

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeLambda

Makes extension methods on TypeParamClause available without any imports

Makes extension methods on TypeParamClause available without any imports

TypeTest that allows testing at runtime in a pattern match if a ParamClause is a TypeParamClause

TypeTest that allows testing at runtime in a pattern match if a ParamClause is a TypeParamClause

Makes extension methods on TypeProjection available without any imports

Makes extension methods on TypeProjection available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeProjection

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeProjection

Makes extension methods on TypeRef available without any imports

Makes extension methods on TypeRef available without any imports

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeRef

TypeTest that allows testing at runtime in a pattern match if a TypeRepr is a TypeRef

Makes extension methods on TypeRepr available without any imports

Makes extension methods on TypeRepr available without any imports

Default pinter for TypeRepr used when calling tpe.show

Default pinter for TypeRepr used when calling tpe.show

Makes extension methods on TypeSelect available without any imports

Makes extension methods on TypeSelect available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeSelect

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeSelect

Makes extension methods on TypeTree available without any imports

Makes extension methods on TypeTree available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeTree

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypeTree

Makes extension methods on Typed available without any imports

Makes extension methods on Typed available without any imports

@since("3.1")

Makes extension methods on TypedOrTest available without any imports

Makes extension methods on TypedOrTest available without any imports

@since("3.1")

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypedOrTest

TypeTest that allows testing at runtime in a pattern match if a Tree is a TypedOrTest

TypeTest that allows testing at runtime in a pattern match if a Tree is a Typed

TypeTest that allows testing at runtime in a pattern match if a Tree is a Typed

Makes extension methods on Unapply available without any imports

Makes extension methods on Unapply available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is an Unapply

TypeTest that allows testing at runtime in a pattern match if a Tree is an Unapply

TypeTest that allows testing at runtime in a pattern match if a Constant is a UnitConstant

TypeTest that allows testing at runtime in a pattern match if a Constant is a UnitConstant

Makes extension methods on ValDef available without any imports

Makes extension methods on ValDef available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a ValDef

TypeTest that allows testing at runtime in a pattern match if a Tree is a ValDef

Makes extension methods on While available without any imports

Makes extension methods on While available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a While

TypeTest that allows testing at runtime in a pattern match if a Tree is a While

@since("3.1")

TypeTest that allows testing at runtime in a pattern match if a Tree is a Wildcard

TypeTest that allows testing at runtime in a pattern match if a Tree is a Wildcard

Makes extension methods on WildcardTypeTree available without any imports

Makes extension methods on WildcardTypeTree available without any imports

TypeTest that allows testing at runtime in a pattern match if a Tree is a WildcardTypeTree

TypeTest that allows testing at runtime in a pattern match if a Tree is a WildcardTypeTree

Extensions

Extensions

extension (expr: Expr[Any])

Returns the Term representation this expression

Returns the Term representation this expression