Trees

tastyquery.Trees$
object Trees

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Trees.type

Members list

Concise view

Type members

Classlikes

final case class Alternative(trees: List[PatternTree])(span: Span) extends PatternTree

tree_1 | ... | tree_n

tree_1 | ... | tree_n

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class AnnotatedTypeTree(tpt: TypeTree, annotation: TermTree)(span: Span) extends TypeTree

arg @annot

arg @annot

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class AppliedTypeTree(tycon: TypeTree, args: List[TypeTree])(span: Span) extends TypeTree

tpt[args] TypeBounds[Tree] for wildcard application: tpt[_], tpt[?]

tpt[args] TypeBounds[Tree] for wildcard application: tpt[_], tpt[?]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class Apply(fun: TermTree, args: List[TermTree])(span: Span) extends TermTree

fun(args)

fun(args)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Assign(lhs: TermTree, rhs: TermTree)(span: Span) extends TermTree

name = arg, outside a parameter list

name = arg, outside a parameter list

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Bind(name: Name, body: PatternTree, symbol: TermSymbol)(span: Span) extends PatternTree with DefTree

pattern in [[Unapply]]

pattern in [[Unapply]]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DefTree
class Tree
class Object
trait Matchable
class Any
final case class Block(stats: List[StatementTree], expr: TermTree)(span: Span) extends TermTree

{ stats; expr }

{ stats; expr }

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class ByNameTypeTree(result: TypeTree)(span: Span) extends TypeTree

=> T

=> T

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class CaseDef(pattern: PatternTree, guard: Option[TermTree], body: TermTree)(span: Span) extends Tree

case pattern if guard => body; only appears as child of a Match and Try

case pattern if guard => body; only appears as child of a Match and Try

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class ClassDef(name: TypeName, rhs: Template, symbol: ClassSymbol)(span: Span) extends TypeDef

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeDef
trait DefTree
class Tree
class Object
trait Matchable
class Any
final case class DefDef(name: TermName, paramLists: List[ParamsClause], resultTpt: TypeTree, rhs: Option[TermTree], symbol: TermSymbol)(span: Span) extends ValOrDefDef

mods def nametparams...(vparams_n): tpt = rhs

mods def nametparams...(vparams_n): tpt = rhs

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DefTree
class Tree
class Object
trait Matchable
class Any
sealed trait DefTree extends Tree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
class Bind
class TypeDef
class ClassDef
class TypeParam
class DefDef
class ValDef
final case class ExplicitTypeBoundsTree(low: TypeTree, high: TypeTree)(span: Span) extends TypeBoundsTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class Export(expr: TermTree, selectors: List[ImportSelector])(span: Span) extends StatementTree

import expr.selectors

import expr.selectors

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class ExprPattern(expr: TermTree)(span: Span) extends PatternTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class Ident(name: TermName)(tpe: TermRef | PackageRef)(span: Span) extends TermTree

name

name

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class If(cond: TermTree, thenPart: TermTree, elsePart: TermTree)(span: Span) extends TermTree

if cond then thenp else elsep

if cond then thenp else elsep

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Import(expr: TermTree, selectors: List[ImportSelector])(span: Span) extends StatementTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class ImportIdent(name: TermName)(span: Span) extends Tree

An identifier appearing in an import clause; it has no type.

An identifier appearing in an import clause; it has no type.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class ImportSelector(imported: ImportIdent, renamed: Option[ImportIdent], bound: Option[TypeTree])(span: Span) extends Tree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class InferredTypeBoundsTree(bounds: TypeBounds)(span: Span) extends TypeBoundsTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class InlineIf(cond: TermTree, thenPart: TermTree, elsePart: TermTree)(span: Span) extends TermTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class InlineMatch(selector: Option[TermTree], cases: List[CaseDef])(span: Span) extends TermTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Inlined(expr: TermTree, caller: Option[TypeIdent | SelectTypeTree], bindings: List[ValOrDefDef])(span: Span) extends TermTree

A tree representing inlined code.

A tree representing inlined code.

Attributes

bindings

Bindings for proxies to be used in the inlined code The full inlined code is equivalent to { bindings; expr }

caller

The toplevel class from which the call was inlined.

expr

The inlined tree, minus bindings.

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Lambda(meth: TermTree, tpt: Option[TypeTree])(span: Span) extends TermTree

Attributes

meth

A reference to the method.

tpt

Defined only if the lambda's type is a SAMtype rather than a function type.

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Literal(constant: Constant)(span: Span) extends TermTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Match(selector: TermTree, cases: List[CaseDef])(span: Span) extends TermTree

selector match { cases }

selector match { cases }

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class MatchTypeTree(bound: Option[TypeTree], selector: TypeTree, cases: List[TypeCaseDef])(span: Span) extends TypeTree

[bound] selector match { cases }

[bound] selector match { cases }

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class NamedArg(name: Name, arg: TermTree)(span: Span) extends TermTree

name = arg, in a parameter list

name = arg, in a parameter list

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class NamedTypeBoundsTree(name: TypeName, bounds: TypeBounds)(span: Span) extends TypeDefinitionTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class New(tpt: TypeTree)(span: Span) extends TermTree

new tpt, but no constructor call

new tpt, but no constructor call

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class OpaqueTypeAliasDefinitionTree(bounds: TypeBoundsTree, alias: TypeTree)(span: Span) extends TypeDefinitionTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class PackageDef(pid: PackageSymbol, stats: List[TopLevelTree])(span: Span) extends TopLevelTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
sealed abstract class PatternTree(span: Span) extends Tree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
final case class PolyTypeDefinitionTree(tparams: List[TypeParam], body: TypeDefinitionTree)(span: Span) extends TypeDefinitionTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class RefinedTypeTree(underlying: TypeTree, refinements: List[RefinementMemberDef], refinedCls: ClassSymbol)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class Return(expr: Option[TermTree], from: TermSymbol)(span: Span) extends TermTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Select(qualifier: TermTree, name: TermName)(selectOwner: Option[TypeRef])(span: Span) extends TermTree

qualifier.termName

qualifier.termName

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class SelectOuter(qualifier: TermTree, levels: Int)(tpe: Type)(span: Span) extends TermTree

Synthetic outer selection

Synthetic outer selection

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class SelectTypeTree(qualifier: TypeTree, name: TypeName)(span: Span) extends TypeTree

qualifier#name

qualifier#name

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class SelfDef(name: TermName, tpt: TypeTree)(span: Span) extends Tree

Self type definition name: tpt =>.

Self type definition name: tpt =>.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class SeqLiteral(elems: List[TermTree], elemtpt: TypeTree)(span: Span) extends TermTree

Seq(elems)

Seq(elems)

Attributes

tpt

The element type of the sequence.

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class SingletonTypeTree(ref: TermTree)(span: Span) extends TypeTree

ref.type

ref.type

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
sealed abstract class StatementTree(span: Span) extends TopLevelTree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
class Export
class Import
class TermTree
class Apply
class Assign
class Block
class Ident
class If
class InlineIf
class Inlined
class Lambda
class Literal
class Match
class NamedArg
class New
class Return
class Select
class Super
class This
class Throw
class Try
class TypeApply
class Typed
class While
class TypeDef
class ClassDef
class TypeParam
class DefDef
class ValDef
final case class Super(qual: TermTree, mix: Option[TypeIdent])(span: Span) extends TermTree

C.super[mix], where qual = C.this

C.super[mix], where qual = C.this

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Template(constr: DefDef, parents: List[Apply | Block | TypeTree], self: Option[SelfDef], body: List[StatementTree])(span: Span) extends Tree

constr extends parents { self => body }

constr extends parents { self => body }

holder for details of a Class definition

Attributes

classParent

-- the parent whose constructor is called. If the template defines a class, this is its only class parent.

parents

trait parents of the template and the class parent if the template defines a trait.

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class TermRefTypeTree(qualifier: TermTree, name: TermName)(span: Span) extends TypeTree

qualifier.name

qualifier.name

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
sealed abstract class TermTree(span: Span) extends StatementTree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
class Apply
class Assign
class Block
class Ident
class If
class InlineIf
class Inlined
class Lambda
class Literal
class Match
class NamedArg
class New
class Return
class Select
class Super
class This
class Throw
class Try
class TypeApply
class Typed
class While
final case class This(qualifier: TypeIdent)(span: Span) extends TermTree

qual.this

qual.this

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Throw(expr: TermTree)(span: Span) extends TermTree

throw expr

throw expr

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
sealed abstract class TopLevelTree(span: Span) extends Tree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
class Export
class Import
class TermTree
class Apply
class Assign
class Block
class Ident
class If
class InlineIf
class Inlined
class Lambda
class Literal
class Match
class NamedArg
class New
class Return
class Select
class Super
class This
class Throw
class Try
class TypeApply
class Typed
class While
class TypeDef
class ClassDef
class TypeParam
class DefDef
class ValDef
sealed abstract class Tree(val span: Span)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
final case class Try(expr: TermTree, cases: List[CaseDef], finalizer: Option[TermTree])(span: Span) extends TermTree

try block catch cases finally finalizer

try block catch cases finally finalizer

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class TypeAliasDefinitionTree(alias: TypeTree)(span: Span) extends TypeDefinitionTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class TypeApply(fun: TermTree, args: List[TypeTree])(span: Span) extends TermTree

fun[args]

fun[args]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class TypeBindingsTree(bindings: List[TypeMember], body: TypeTree)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
sealed abstract class TypeBoundsTree(span: Span) extends TypeDefinitionTree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
final case class TypeCaseDef(pattern: TypeTree, body: TypeTree)(span: Span) extends Tree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
sealed abstract class TypeDef(name: TypeName)(span: Span) extends StatementTree with DefTree

mods class name template or mods trait name template or mods type name = rhs or mods type name >: lo <: hi, if rhs = TypeBoundsTree(lo, hi) or mods type name >: lo <: hi = rhs if rhs = TypeBoundsTree(lo, hi, alias) and opaque in mods

mods class name template or mods trait name template or mods type name = rhs or mods type name >: lo <: hi, if rhs = TypeBoundsTree(lo, hi) or mods type name >: lo <: hi = rhs if rhs = TypeBoundsTree(lo, hi, alias) and opaque in mods

Attributes

Graph
Supertypes
trait DefTree
class Tree
class Object
trait Matchable
class Any
Known subtypes
class ClassDef
class TypeParam
sealed abstract class TypeDefinitionTree(span: Span) extends Tree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
final case class TypeIdent(name: TypeName)(tpe: Type)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class TypeLambdaTree(tparams: List[TypeParam], body: TypeTree)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class TypeMember(name: TypeName, rhs: TypeDefinitionTree, symbol: TypeMemberSymbol)(span: Span) extends TypeDef

A type member has a type tree rhs if the member is defined by the user, or typebounds if it's synthetic

A type member has a type tree rhs if the member is defined by the user, or typebounds if it's synthetic

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeDef
trait DefTree
class Tree
class Object
trait Matchable
class Any
final case class TypeParam(name: TypeName, bounds: TypeDefinitionTree, symbol: TypeParamSymbol)(span: Span) extends TypeDef

The bounds are a type tree if the method is defined by the user and bounds-only if it's synthetic

The bounds are a type tree if the method is defined by the user and bounds-only if it's synthetic

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeDef
trait DefTree
class Tree
class Object
trait Matchable
class Any
final case class TypeTest(body: PatternTree, tpt: TypeTree)(span: Span) extends PatternTree

Type-test pattern pat: T.

Type-test pattern pat: T.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
sealed abstract class TypeTree(span: Span) extends Tree

Attributes

Graph
Supertypes
class Tree
class Object
trait Matchable
class Any
Known subtypes
final case class TypeTreeBind(name: TypeName, body: TypeDefinitionTree, symbol: LocalTypeParamSymbol)(span: Span) extends TypeTree with DefTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DefTree
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class TypeWrapper(tp: Type)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any
final case class Typed(expr: TermTree, tpt: TypeTree)(span: Span) extends TermTree

expr : tpt

expr : tpt

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class Unapply(fun: TermTree, implicits: List[TermTree], patterns: List[PatternTree])(span: Span) extends PatternTree

extractor(patterns) in a pattern:

extractor(patterns) in a pattern:

Attributes

fun

is extractor.unapply (or, for backwards compatibility, extractor.unapplySeq) possibly with type parameters

implicits

Any implicit parameters passed to the unapply after the selector

patterns

The argument patterns in the pattern match. It is typed with same type as first fun argument Given a match selector sel a pattern UnApply(fun, implicits, patterns) is roughly translated as follows val result = fun(sel)(implicits) if (result.isDefined) "match patterns against result"

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class ValDef(name: TermName, tpt: TypeTree, rhs: Option[TermTree], symbol: TermSymbol)(span: Span) extends ValOrDefDef

mods val name: tpt = rhs

mods val name: tpt = rhs

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DefTree
class Tree
class Object
trait Matchable
class Any
sealed abstract class ValOrDefDef()(span: Span) extends StatementTree with DefTree

Attributes

Graph
Supertypes
trait DefTree
class Tree
class Object
trait Matchable
class Any
Known subtypes
class DefDef
class ValDef
final case class While(cond: TermTree, body: TermTree)(span: Span) extends TermTree

while (cond) { body }

while (cond) { body }

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TermTree
class Tree
class Object
trait Matchable
class Any
final case class WildcardPattern(tpe: Type)(span: Span) extends PatternTree

Wildcard pattern _.

Wildcard pattern _.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Tree
class Object
trait Matchable
class Any
final case class WildcardTypeBoundsTree(bounds: TypeBoundsTree)(span: Span) extends TypeTree

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class TypeTree
class Tree
class Object
trait Matchable
class Any

Types

type ParamsClause = Either[List[ValDef], List[TypeParam]]