Dotty Documentation

0.5.0-bin-SNAPSHOT

trait TreeInfo [ T ]
extends Object

[-] Constructors

[-] Members

[+] class MatchingArgs
[+] val isNamedArg : Any => Boolean
[+] def arguments ( tree: Tree ) : List [ Tree ]

The (last) list of arguments of an application

[+] def catchesAllOf ( cdef: CaseDef , threshold: Type ) ( implicit ctx: Context ) : Boolean

Does this CaseDef catch everything of a certain Type?

[+] def catchesThrowable ( cdef: CaseDef ) ( implicit ctx: Context ) : Boolean

Does this CaseDef catch Throwable?

[+] def firstConstructor ( stats: List [ Tree ] ) : Tree

The first constructor definition in stats

[+] def firstConstructorArgs ( stats: List [ Tree ] ) : List [ Tree ]

The arguments to the first constructor in stats.

[+] def forallResults ( tree: Tree , p: Tree => Boolean ) : Boolean

Checks whether predicate p is true for all result parts of this expression, where we zoom into Ifs, Matches, and Blocks.

[+] def hasNamedArg ( args: List [ Any ] ) : Boolean

Does this list contain a named argument tree?

[+] def isDeclarationOrTypeDef ( tree: Tree ) : Boolean
[+] def isDefaultCase ( cdef: CaseDef ) : Boolean

Is this pattern node a catch-all (wildcard or variable) pattern?

[+] def isGuardedCase ( cdef: CaseDef ) : Boolean

Is this case guarded?

[+] def isLeftAssoc ( operator: Name ) : Boolean

Is name a left-associative operator?

[+] def isOpAssign ( tree: Tree ) : Boolean
[+] def isRepeatedParamType ( tpt: Tree ) ( implicit ctx: Context ) : Boolean

Is tpt a vararg type of the form T* or => T*?

[+] def isSelfConstrCall ( tree: Tree ) : Boolean

Is tree a self constructor call this(...)? I.e. a call to a constructor of the same object?

[+] def isSelfOrSuperConstrCall ( tree: Tree ) : Boolean
[+] def isSuperConstrCall ( tree: Tree ) : Boolean

Is tree a super constructor call?

[+] def isSuperSelection ( tree: Tree ) : Boolean
[+] def isSyntheticDefaultCase ( cdef: CaseDef ) : Boolean

Is this pattern node a synthetic catch-all case, added during PartialFuction synthesis before we know whether the user provided cases are exhaustive.

[+] def isVarPattern ( pat: Tree ) : Boolean

Is tree a variable pattern?

[+] def isWildcardArg ( tree: Tree ) : Boolean

Is the argument a wildcard argument of the form _ or x @ _?

[+] def isWildcardStarArg ( tree: Tree ) ( implicit ctx: Context ) : Boolean

Is this argument node of the form : _* ?

[+] def isWildcardStarArgList ( trees: List [ Tree ] ) ( implicit ctx: Context ) : Boolean

Does this argument list end with an argument of the form : _* ?

[+] def mayBeTypePat ( tree: Tree ) : Boolean

can this type be a type pattern?

[+] def methPart ( tree: Tree ) : Tree

The method part of an application node, possibly enclosed in a block with only valdefs as statements. the reason for also considering blocks is that named arguments can transform a call into a block, e.g. (b = foo, a = bar) is transformed to { val x$1 = foo val x$2 = bar (x$2, x$1) }

[+] def numArgs ( tree: Tree ) : Int

The number of arguments in an application

[+] def stripApply ( tree: Tree ) : Tree

If this is an application, its function part, stripping all Apply nodes (but leaving TypeApply nodes in). Otherwise the tree itself.

[+] def unbind ( x: Tree ) : Tree

The underlying pattern ignoring any bindings

[+] def unsplice ( tree: Tree [ T ] ) : Tree [ T ]