Scala Reflection Library2.13.18 < Back


# Packages

-  package root
  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package reflect
  Definition Classes
    scala
-  package runtime

  Entry points into runtime reflection.

  Entry points into runtime reflection. See the overview page for details on how to use them.

  Definition Classes
    reflect
-  class JavaUniverse extends internal.SymbolTable with JavaUniverseForce with ReflectSetup with SymbolTable

  An implementation of scala.reflect.api.Universe for runtime reflection using JVM classloaders.

  An implementation of scala.reflect.api.Universe for runtime reflection using JVM classloaders.

  Should not be instantiated directly, use scala.reflect.runtime.universe instead.

  Definition Classes
    runtime
- AbstractTypeRef
- AbstractTypeSymbol
- AliasTypeRef
- AliasTypeSymbol
- Alternative
- Alternative
- AlternativeApi
- AlternativeExtractor
- Annotatable
- Annotated
- Annotated
- AnnotatedApi
- AnnotatedExtractor
- AnnotatedType
- AnnotatedType
- AnnotatedTypeApi
- AnnotatedTypeExtractor
- Annotation
- AnnotationApi
- AnnotationChecker
- AnnotationExtractor
- AnnotationFilter
- AnnotationInfo
- AnnotationInfo
- AntiPolyType
- AppliedTypeTree
- AppliedTypeTree
- AppliedTypeTreeApi
- AppliedTypeTreeExtractor
- AppliedTypeVar
- Apply
- Apply
- ApplyApi
- ApplyDynamic
- ApplyExtractor
- ApplyImplicitView
- ApplyToImplicitArgs
- ApproximateDependentMap
- ArgsTypeRef
- ArrayAnnotArg
- ArrayTypeRef
- ArrayValue
- AsSeenFromMap
- Assign
- Assign
- AssignApi
- AssignExtractor
- Attachable
- AutoApplicationAttachment
- BackquotedIdentifierAttachment
- BaseTypeSeq
- Bind
- Bind
- BindApi
- BindExtractor
- Block
- Block
- BlockApi
- BlockExtractor
- BooleanFlag
- BooleanParameterType
- BoundedWildcardType
- BoundedWildcardType
- BoundedWildcardTypeApi
- BoundedWildcardTypeExtractor
- CannotHaveAttrs
- CaseApplyInheritAccess
- CaseDef
- CaseDef
- CaseDefApi
- CaseDefExtractor
- ChangeOwnerAttachment
- ChangeOwnerTraverser
- ChildSolidDescendantsCollector
- ClassDef
- ClassDef
- ClassDefApi
- ClassDefExtractor
- ClassInfoType
- ClassInfoType
- ClassInfoTypeApi
- ClassInfoTypeExtractor
- ClassMirror
- ClassSymbol
- ClassSymbolApi
- ClassUnwrapper
- ClassfileAnnotArg
- CodePrinter
- CollectTreeTraverser
- CollectTypeCollector
- CommonNames
- CommonOwnerMap
- CompatApi
- CompatToken
- CompilationUnit
- CompilationUnitContextApi
- CompleteAnnotationInfo
- CompoundType
- CompoundType
- CompoundTypeApi
- CompoundTypeTree
- CompoundTypeTree
- CompoundTypeTreeApi
- CompoundTypeTreeExtractor
- CompoundTypeTreeOriginalAttachment
- ConsoleWriter
- Constant
- Constant
- ConstantApi
- ConstantExtractor
- ConstantType
- ConstantType
- ConstantTypeApi
- ConstantTypeExtractor
- ConstructorNeedsFence
- ContainsAnyKeyCollector
- ContainsCollector
- CyclicReference
- CyclicReference
- DefDef
- DefDef
- DefDefApi
- DefDefExtractor
- DefTree
- DefTreeApi
- DefaultPosAssigner
- DefinitionsApi
- DefinitionsClass
- DelambdafyTarget
- DiscardedExpr
- DiscardedValue
- DottyEnumSingleton
- DottyOpaqueTypeAlias
- DottyParameterisedTrait
- EmptyScope
- EmptyTree
- ErasedValueType
- ErasedValueType
- ErroneousAnnotation
- ErroneousCollector
- ErrorScope
- ErrorType
- ExistentialExtrapolation
- ExistentialType
- ExistentialType
- ExistentialTypeApi
- ExistentialTypeExtractor
- ExistentialTypeTree
- ExistentialTypeTree
- ExistentialTypeTreeApi
- ExistentialTypeTreeExtractor
- ExistsTypeRefCollector
- Expr
- ExtraLazyAnnotationInfo
- FieldMirror
- FieldTypeInferred
- FilterTreeTraverser
- FilterTypeCollector
- FindTreeTraverser
- FindTypeCollector
- FixedMirrorTreeCreator
- FixedMirrorTypeCreator
- Flag
- FlagAgnosticCompleter
- FlagAssigningCompleter
- FlagOps
- FlagValues
- FoldableConstantType
- FoldableConstantType
- ForAttachment
- ForEachTypeTraverser
- ForceMatchDesugar
- ForeachPartialTreeTraverser
- ForeachTreeTraverser
- FreeSymbol
- FreeTermSymbol
- FreeTermSymbolApi
- FreeTypeSymbol
- FreeTypeSymbolApi
- FreshNameExtractor
- Function
- Function
- FunctionApi
- FunctionExtractor
- GenPolyType
- GenericApply
- GenericApplyApi
- HKTypeVar
- HasTypeMember
- Ident
- Ident
- IdentApi
- IdentExtractor
- If
- If
- IfApi
- IfExtractor
- ImplDef
- ImplDefApi
- Import
- Import
- ImportApi
- ImportExtractor
- ImportSelector
- ImportSelector
- ImportSelectorApi
- ImportSelectorExtractor
- ImportType
- ImportableAttachment
- Importer
- InfixAttachment
- InfoTransformer
- InlineAnnotatedAttachment
- InlineCallsiteAttachment
- InstanceMirror
- InstantiateDependentMap
- InternalApi
- InternalTransformer
- InternalTraverser
- InternalTreeCopierOps
- InterpolatedString
- InvalidateTypeCaches
- IsDependentCollector
- IsRelatableCollector
- JavaArgumentApi
- JavaClassCompleter
- JavaKeywords
- JavaMirror
- JavaRestrictedIdentifiers
- KeepOnlyTypeConstraints
- Keywords
- Kind
- Kind
- KindErrors
- KnownDirectSubclassesCalled
- LabelDef
- LabelDef
- LabelDefApi
- LabelDefExtractor
- LazyAnnotationInfo
- LazyPackageType
- LazyPolyType
- LazyTreeCopier
- LazyType
- Liftable
- Literal
- Literal
- LiteralAnnotArg
- LiteralApi
- LiteralExtractor
- LiteralType
- LiteralType
- LocalOwnersTraverser
- Locator
- LookupAmbiguityWarning
- LookupAmbiguous
- LookupInaccessible
- LookupNotFound
- LookupSucceeded
- MacroCompatApi
- MacroInternalApi
- MalformedType
- MappedBaseTypeSeq
- Match
- Match
- MatchApi
- MatchExtractor
- MemberDef
- MemberDefApi
- MemberScopeApi
- MethodMirror
- MethodSymbol
- MethodSymbolApi
- MethodType
- MethodType
- MethodTypeApi
- MethodTypeExtractor
- MethodValue
- MissingAliasControl
- MissingTypeControl
- Modifiers
- Modifiers
- ModifiersApi
- ModifiersExtractor
- ModuleClassSymbol
- ModuleDef
- ModuleDef
- ModuleDefApi
- ModuleDefExtractor
- ModuleMirror
- ModuleSymbol
- ModuleSymbolApi
- ModuleTypeRef
- MultiDefAttachment
- MultiargInfixAttachment
- Name
- NameApi
- NameHasIsEmpty
- NameLookup
- NamePos
- NameTree
- NameTreeApi
- NamedArg
- NamedArg
- NamedArgApi
- NamedArgExtractor
- NamedType
- NamesApi
- NestedAnnotArg
- New
- New
- NewApi
- NewExtractor
- NoArgsTypeRef
- NoCommonType
- NoInlineCallsiteAttachment
- NoPrefix
- NoSymbol
- NoType
- NoWarnAttachment
- NonClassTypeRef
- NullaryMethodType
- NullaryMethodType
- NullaryMethodTypeApi
- NullaryMethodTypeExtractor
- NullaryOverrideAdapted
- OuterArgCanBeElided
- OverloadedArgProto
- OverloadedType
- PackageClassInfoType
- PackageClassSymbol
- PackageDef
- PackageDef
- PackageDefApi
- PackageDefExtractor
- PackageObjectClassSymbol
- PackageScope
- PackageTypeRef
- PatShadowAttachment
- PatVarDefAttachment
- PerRunReporting
- PerRunReportingBase
- PermittedSubclassSymbols
- PermittedSubclasses
- PlainAttachment
- PolyType
- PolyType
- PolyTypeApi
- PolyTypeExtractor
- PosAssigner
- PostfixAttachment
- ProperTypeKind
- ProperTypeKind
- ProtoType
- QualTypeSymAttachment
- Quasiquote
- RawTreePrinter
- RecoverableCyclicReference
- RefTree
- RefTree
- RefTreeApi
- RefTreeExtractor
- ReferenceToBoxed
- ReferenceToBoxed
- ReferenceToBoxedApi
- ReferenceToBoxedExtractor
- RefinedType
- RefinedType
- RefinedType0
- RefinedTypeApi
- RefinedTypeExtractor
- RefinementClassSymbol
- RefinementTypeRef
- ReflectStats
- ReflectiveMirror
- ReificationSupportApi
- ReificationSupportImpl
- RepeatedType
- Return
- Return
- ReturnApi
- ReturnExtractor
- RewrappingTypeProxy
- RootSelection
- RootSymbol
- Roots
- RootsBase
- Run
- RunContextApi
- RunReporting
- RuntimeClassApi
- RuntimeMirror
- SAMFunction
- Scope
- Scope
- ScopeApi
- ScopeEntry
- Select
- Select
- SelectApi
- SelectExtractor
- SelectFromTypeTree
- SelectFromTypeTree
- SelectFromTypeTreeApi
- SelectFromTypeTreeExtractor
- SimpleTypeProxy
- SingleType
- SingleType
- SingleTypeApi
- SingleTypeExtractor
- SingletonType
- SingletonTypeApi
- SingletonTypeTree
- SingletonTypeTree
- SingletonTypeTreeApi
- SingletonTypeTreeExtractor
- StandardImporter
- StandardLiftableInstances
- StandardTypes
- StandardUnliftableInstances
- Star
- Star
- StarApi
- StarExtractor
- StaticallyAnnotatedType
- StrictTreeCopier
- StubClassSymbol
- StubSymbol
- StubTermSymbol
- SubType
- SubTypePair
- SubpatternsAttachment
- SubstMap
- SubstSymMap
- SubstSymMap
- SubstThisMap
- SubstTypeMap
- SubstWildcardMap
- Super
- Super
- SuperApi
- SuperExtractor
- SuperType
- SuperType
- SuperTypeApi
- SuperTypeExtractor
- SymLoader
- SymTree
- SymTreeApi
- Symbol
- SymbolApi
- SymbolContextApiImpl
- SymbolNames
- SymbolOps
- SymbolTableInternal
- SynchronizedBaseTypeSeq
- SynchronizedClassSymbol
- SynchronizedMethodSymbol
- SynchronizedModuleClassSymbol
- SynchronizedModuleSymbol
- SynchronizedScope
- SynchronizedSymbol
- SynchronizedTermSymbol
- SynchronizedTypeSymbol
- SyntheticUnitAttachment
- Template
- Template
- TemplateApi
- TemplateExtractor
- TemplateMirror
- TermName
- TermName
- TermNameApi
- TermNameExtractor
- TermNames
- TermNamesApi
- TermSymbol
- TermSymbolApi
- TermTree
- TermTreeApi
- This
- This
- ThisApi
- ThisExtractor
- ThisSubstituter
- ThisType
- ThisType
- ThisTypeApi
- ThisTypeExtractor
- ThreadLocalStorage
- Throw
- Throw
- ThrowApi
- ThrowExtractor
- ThrownException
- TopClassCompleter
- Transformer
- Traverser
- Tree
- TreeApi
- TreeContextApiImpl
- TreeCopierOps
- TreeGen
- TreePrinter
- TreeReplacer
- TreeStackTraverser
- TreeSubstituter
- TreeSymSubstTraverser
- TreeSymSubstituter
- TreeTypeSubstituter
- Try
- Try
- TryApi
- TryExtractor
- TwoWayCache
- TypTree
- TypTreeApi
- Type
- TypeApi
- TypeApiImpl
- TypeApply
- TypeApply
- TypeApplyApi
- TypeApplyExtractor
- TypeBounds
- TypeBounds
- TypeBoundsApi
- TypeBoundsExtractor
- TypeBoundsTree
- TypeBoundsTree
- TypeBoundsTreeApi
- TypeBoundsTreeExtractor
- TypeCollector
- TypeConKind
- TypeConKind
- TypeConstraint
- TypeDef
- TypeDef
- TypeDefApi
- TypeDefExtractor
- TypeError
- TypeFolder
- TypeMap
- TypeMapTreeSubstituter
- TypeName
- TypeName
- TypeNameApi
- TypeNameExtractor
- TypeNames
- TypeNamesApi
- TypeParamVarargsAttachment
- TypeRef
- TypeRef
- TypeRefApi
- TypeRefExtractor
- TypeSkolem
- TypeSymbol
- TypeSymbolApi
- TypeTag
- TypeTraverser
- TypeTree
- TypeTree
- TypeTreeApi
- TypeTreeExtractor
- TypeUnwrapper
- TypeVar
- TypeVar
- Typed
- Typed
- TypedApi
- TypedExpectingUnitAttachment
- TypedExtractor
- TypedLocator
- UnApply
- UnApply
- UnApplyApi
- UnApplyExtractor
- UndoLog
- UniqueConstantType
- UniqueErasedValueType
- UniqueLiteralType
- UniqueSingleType
- UniqueSuperType
- UniqueThisType
- UniqueType
- UniqueTypeBounds
- Unliftable
- UnmappableAnnotArg
- UnmappableAnnotation
- UnmappableTree
- UnnamedArg
- UnrelatableCollector
- UntouchableTypeVar
- UseInvokeSpecial
- ValDef
- ValDef
- ValDefApi
- ValDefExtractor
- ValOrDefDef
- ValOrDefDef
- ValOrDefDefApi
- ValidateException
- ValueClassDefinitions
- VarianceValidator
- VariancedTypeMap
- VirtualStringContext
- WeakTypeTag
- WildcardType
- abstractTypesToBounds
- adaptToNewRunMap
- binarynme
- definitions
- dropIllegalStarTypes
- dropSingletonType
- duplicateAndResetPos
- fulltpnme
- identityTypeMap
- inferKind
- nme
- noPrint
- noSelfType
- normalizeAliases
- pendingSuperCall
- perRunCaches
- tpnme
- traceSymbols
- treeInfo
- typeDebug
- typeVarToOriginMap
- unwrapToClass
- unwrapToStableClass
- unwrapWrapperTypes
- wildcardExtrapolation

o

scala.reflect.runtime.JavaUniverse

# treeInfo

###

#### object treeInfo extends TreeInfo

Definition Classes
  JavaUniverse → SymbolTable
Source
  JavaUniverse.scala

Linear Supertypes
TreeInfo, AnyRef, Any

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. treeInfo
2. TreeInfo
3. AnyRef
4. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Type Members

1.  final class Applied extends AnyRef

   Applications in Scala can have one of the following shapes:

   Applications in Scala can have one of the following shapes:

   1) naked core: Ident(_) or Select(_, _) or basically anything else 2) naked core with targs: TypeApply(core, targs) or AppliedTypeTree(core, targs) 3) apply or several applies wrapping a core: Apply(core, _), or Apply(Apply(core, _), _), etc

   This class provides different ways to decompose applications and simplifies their analysis.

   ***Examples*** (TypeApply in the examples can be replaced with AppliedTypeTree)

   Ident(foo): * callee = Ident(foo) * core = Ident(foo) * targs = Nil * argss = Nil

   TypeApply(foo, List(targ1, targ2...)) * callee = TypeApply(foo, List(targ1, targ2...)) * core = foo * targs = List(targ1, targ2...) * argss = Nil

   Apply(foo, List(arg1, arg2...)) * callee = foo * core = foo * targs = Nil * argss = List(List(arg1, arg2...))

   Apply(Apply(foo, List(arg21, arg22, ...)), List(arg11, arg12...)) * callee = foo * core = foo * targs = Nil * argss = List(List(arg11, arg12...), List(arg21, arg22, ...))

   Apply(Apply(TypeApply(foo, List(targs1, targs2, ...)), List(arg21, arg22, ...)), List(arg11, arg12...)) * callee = TypeApply(foo, List(targs1, targs2, ...)) * core = foo * targs = Nil * argss = List(List(arg11, arg12...), List(arg21, arg22, ...))

   Definition Classes
     TreeInfo
2.  class DynamicApplicationExtractor extends AnyRef
   Definition Classes
     TreeInfo
3.  abstract class SeeThroughBlocks[T] extends AnyRef

   Some handy extractors for spotting trees through the the haze of irrelevant braces: i.e.

   Some handy extractors for spotting trees through the the haze of irrelevant braces: i.e. Block(Nil, SomeTree) should not keep us from seeing SomeTree.

   Definition Classes
     TreeInfo

### Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  final val SYNTH_CASE_FLAGS: Long(2099200L)
   Definition Classes
     TreeInfo
5.  def admitsTypeSelection(tree: JavaUniverse.Tree): Boolean

   Is `tree` either a non-volatile type, or a path that does not include any of:

   Is `tree` either a non-volatile type, or a path that does not include any of:

   - a reference to a mutable variable/field
   - a reference to a by-name parameter
   - a member selection on a volatile type (Spec: 3.6 Volatile Types)?

   Such a tree is a suitable target for type selection.

   Definition Classes
     TreeInfo
6.  final def asInstanceOf[T0]: T0
   Definition Classes
     Any
7.  def assignmentToMaybeNamedArg(tree: JavaUniverse.Tree): JavaUniverse.Tree

   Translates an Assign(_, _) node to NamedArg(_, _) if the lhs is a simple ident.

   Translates an Assign(_, _) node to NamedArg(_, _) if the lhs is a simple ident. Otherwise returns unchanged.

   Definition Classes
     TreeInfo
8.  def catchesThrowable(cdef: JavaUniverse.CaseDef): Boolean

   Does this CaseDef catch Throwable?

   Does this CaseDef catch Throwable?

   Definition Classes
     TreeInfo
9.  def clone(): AnyRef
   Attributes
     protected[lang]
   Definition Classes
     AnyRef
   Annotations
     @throws(classOf[java.lang.CloneNotSupportedException]) @native()
10.  final def dissectApplied(tree: JavaUniverse.Tree): Applied

    Returns a wrapper that knows how to destructure and analyze applications.

    Returns a wrapper that knows how to destructure and analyze applications.

    Definition Classes
      TreeInfo
11.  final def dissectCore(tree: JavaUniverse.Tree): JavaUniverse.Tree

    Equivalent to dissectApplied(tree).core, but more efficient

    Equivalent to dissectApplied(tree).core, but more efficient

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
12.  def effectivePatternArity(args: List[JavaUniverse.Tree]): Int

        //------------------------ => effectivePatternArity(args)
        case Extractor(a)          => 1
        case Extractor(a, b)       => 2
        case Extractor((a, b))     => 2
        case Extractor(a @ (b, c)) => 2

    Definition Classes
      TreeInfo
13.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
14.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
15.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
16.  def firstConstructor(stats: List[JavaUniverse.Tree]): JavaUniverse.Tree

    The first constructor definitions in `stats`

    The first constructor definitions in `stats`

    Definition Classes
      TreeInfo
17.  def firstConstructorArgs(stats: List[JavaUniverse.Tree]): List[JavaUniverse.Tree]

    The arguments to the first constructor in `stats`.

    The arguments to the first constructor in `stats`.

    Definition Classes
      TreeInfo
18.  def firstConstructorMods(stats: List[JavaUniverse.Tree]): JavaUniverse.Modifiers

    The modifiers of the first constructor in `stats`.

    The modifiers of the first constructor in `stats`.

    Definition Classes
      TreeInfo
19.  final def firstDefinesClassOrObject(trees: List[JavaUniverse.Tree], name: JavaUniverse.Name): Boolean

    Does list of trees start with a definition of a class or module with given name (ignoring imports)

    Does list of trees start with a definition of a class or module with given name (ignoring imports)

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
20.  def flattenedPatternArgs(args: List[JavaUniverse.Tree]): List[JavaUniverse.Tree]
    Definition Classes
      TreeInfo
21.  def foreachMethodParamAndArg(params: List[JavaUniverse.Symbol], args: List[JavaUniverse.Tree])(f: (JavaUniverse.Symbol, JavaUniverse.Tree) => Unit): Boolean
    Definition Classes
      TreeInfo
22.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
23.  val global: JavaUniverse.this.type
    Definition Classes
      treeInfo → TreeInfo
24.  def hasExplicitUnit(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
25.  def hasSynthCaseSymbol(t: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
26.  def hasUntypedPreSuperFields(stats: List[JavaUniverse.Tree]): Boolean
    Definition Classes
      TreeInfo
27.  def hasVolatileType(tree: JavaUniverse.Tree): Boolean

    Is `tree`'s type volatile? (Ignored if its symbol has the @uncheckedStable annotation.)

    Is `tree`'s type volatile? (Ignored if its symbol has the @uncheckedStable annotation.)

    Definition Classes
      TreeInfo
28.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
29.  def isAbsTypeDef(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
30.  def isAliasTypeDef(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
31.  def isApplyDynamicName(name: JavaUniverse.Name): Boolean
    Definition Classes
      TreeInfo
32.  def isByNameParamType(tpt: JavaUniverse.Tree): Boolean

    Is tpt a by-name parameter type of the form => T?

    Is tpt a by-name parameter type of the form => T?

    Definition Classes
      TreeInfo
33.  def isCatchCase(cdef: JavaUniverse.CaseDef): Boolean

    Is this pattern node a catch-all or type-test pattern?

    Is this pattern node a catch-all or type-test pattern?

    Definition Classes
      TreeInfo
34.  def isConstructorWithDefault(t: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
35.  def isDeclarationOrTypeDef(tree: JavaUniverse.Tree): Boolean

    Is tree a declaration or type definition?

    Is tree a declaration or type definition?

    Definition Classes
      TreeInfo
36.  def isDefaultCase(cdef: JavaUniverse.CaseDef): Boolean

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

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

    Definition Classes
      TreeInfo
37.  def isDefaultGetter(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
38.  def isEarlyDef(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
39.  def isEarlyValDef(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
40.  final def isExprSafeToInline(tree: JavaUniverse.Tree): Boolean

    Is tree an expression which can be inlined without affecting program semantics?

    Is tree an expression which can be inlined without affecting program semantics?

    Note that this is not called "isExprPure" since purity (lack of side-effects) is not the litmus test. References to modules and lazy vals are side-effecting, both because side-effecting code may be executed and because the first reference takes a different code path than all to follow; but they are safe to inline because the expression result from evaluating them is always the same.

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
41.  def isFunctionMissingParamType(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
42.  def isGuardedCase(cdef: JavaUniverse.CaseDef): Boolean

    Is this case guarded?

    Is this case guarded?

    Definition Classes
      TreeInfo
43.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
44.  def isInterfaceMember(tree: JavaUniverse.Tree): Boolean

    Is tree legal as a member definition of an interface?

    Is tree legal as a member definition of an interface?

    Definition Classes
      TreeInfo
45.  def isLiteralString(t: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
46.  def isMacroApplication(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
47.  final def isMacroApplicationOrBlock(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
48.  final def isNullaryInvocation(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
49.  def isPartialFunctionMissingParamType(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
50.  def isPath(tree: JavaUniverse.Tree, allowVolatile: Boolean): Boolean

    Is `tree` a path, defined as follows? (Spec: 3.1 Paths)

    Is `tree` a path, defined as follows? (Spec: 3.1 Paths)

    - The empty path ε (which cannot be written explicitly in user programs). - C.this, where C references a class. - p.x where p is a path and x is a stable member of p. - C.super.x or C.super[M].x where C references a class and x references a stable member of the super class or designated parent class M of C.

    NOTE: Trees with errors are (mostly) excluded.

    Path ::= StableId | [id ‘.’] this

    Definition Classes
      TreeInfo
51.  def isPureDef(tree: JavaUniverse.Tree): Boolean

    Is tree a pure (i.e.

    Is tree a pure (i.e. non-side-effecting) definition?

    Definition Classes
      TreeInfo
52.  final def isPureExprForWarningPurposes(tree: JavaUniverse.Tree): Boolean

    As if the name of the method didn't give it away, this logic is designed around issuing helpful warnings and minimizing spurious ones.

    As if the name of the method didn't give it away, this logic is designed around issuing helpful warnings and minimizing spurious ones. That means don't reuse it for important matters like inlining decisions.

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
53.  def isQualifierSafeToElide(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
54.  def isRepeatedParamType(tpt: JavaUniverse.Tree): Boolean

    Is tpt a vararg type of the form T* ?

    Is tpt a vararg type of the form T* ?

    Definition Classes
      TreeInfo
55.  def isSelfConstrCall(tree: JavaUniverse.Tree): Boolean

    Is tree a self constructor call this(...)? I.e.

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

    Definition Classes
      TreeInfo
56.  def isSelfOrSuperConstrCall(tree: JavaUniverse.Tree): Boolean

    Is tree a self or super constructor call?

    Is tree a self or super constructor call?

    Definition Classes
      TreeInfo
57.  def isSequenceValued(tree: JavaUniverse.Tree): Boolean

    Is this pattern node a sequence-valued pattern?

    Is this pattern node a sequence-valued pattern?

    Definition Classes
      TreeInfo
58.  def isStableIdentifier(tree: JavaUniverse.Tree, allowVolatile: Boolean): Boolean

    Is `tree` a stable identifier, a path which ends in an identifier?

    Is `tree` a stable identifier, a path which ends in an identifier?

    StableId ::= id | Path ‘.’ id | [id ’.’] ‘super’ [‘[’ id ‘]’] ‘.’ id

    Definition Classes
      TreeInfo
59.  def isStableIdentifierPattern(tree: JavaUniverse.Tree): Boolean

    Is `tree` admissible as a stable identifier pattern (8.1.5 Stable Identifier Patterns)?

    Is `tree` admissible as a stable identifier pattern (8.1.5 Stable Identifier Patterns)?

    We disregard volatility, as it's irrelevant in patterns (scala/bug#6815)

    Definition Classes
      TreeInfo
60.  def isStableMemberOf(sym: JavaUniverse.Symbol, tree: JavaUniverse.Tree, allowVolatile: Boolean): Boolean

    Assuming `sym` is a member of `tree`, is it a "stable member"?

    Assuming `sym` is a member of `tree`, is it a "stable member"?

    Stable members are packages or members introduced by object definitions or by value definitions of non-volatile types (§3.6).

    Definition Classes
      TreeInfo
61.  def isStar(x: JavaUniverse.Tree): Boolean

    Is this tree a Star(_) after removing bindings?

    Is this tree a Star(_) after removing bindings?

    Definition Classes
      TreeInfo
62.  def isSuperConstrCall(tree: JavaUniverse.Tree): Boolean

    Is tree a super constructor call?

    Is tree a super constructor call?

    Definition Classes
      TreeInfo
63.  def isSwitchAnnotation(tpe: JavaUniverse.Type): Boolean

    a Match(Typed(_, tpt), _) must be translated into a switch if isSwitchAnnotation(tpt.tpe)

    a Match(Typed(_, tpt), _) must be translated into a switch if isSwitchAnnotation(tpt.tpe)

    Definition Classes
      TreeInfo
64.  def isSynthCaseSymbol(sym: JavaUniverse.Symbol): Boolean
    Definition Classes
      TreeInfo
65.  def isSyntheticCase(cdef: JavaUniverse.CaseDef): Boolean

    Is this CaseDef synthetically generated, e.g.

    Is this CaseDef synthetically generated, e.g. by `MatchTranslation.translateTry`?

    Definition Classes
      TreeInfo
66.  def isSyntheticDefaultCase(cdef: JavaUniverse.CaseDef): Boolean

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

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

    Definition Classes
      TreeInfo
67.  def isThisTypeResult(tree: JavaUniverse.Tree): Boolean

    Is tree an application with result `this.type`? Accept `b.addOne(x)` and also `xs(i) += x` where the op is an assignment operator.

    Is tree an application with result `this.type`? Accept `b.addOne(x)` and also `xs(i) += x` where the op is an assignment operator.

    Definition Classes
      TreeInfo
68.  def isTraitRef(tree: JavaUniverse.Tree): Boolean
    Definition Classes
      TreeInfo
69.  def isVarPattern(pat: JavaUniverse.Tree): Boolean

    Is tree a variable pattern?

    Is tree a variable pattern?

    Definition Classes
      TreeInfo
70.  def isVarPatternDeep(tree: JavaUniverse.Tree): Boolean

    Does this tree represent an irrefutable pattern match in the position `for { <tree> <- expr }` based only on information at the `parser` phase? To qualify, there may be no subtree that will be interpreted as a Stable Identifier Pattern, nor any type tests, even on TupleN.

    Does this tree represent an irrefutable pattern match in the position `for { <tree> <- expr }` based only on information at the `parser` phase? To qualify, there may be no subtree that will be interpreted as a Stable Identifier Pattern, nor any type tests, even on TupleN. See scala/bug#6968.

    For instance:

        (foo @ (bar @ _)) = 0

    is a not a variable pattern; if only binds names.

    The following are not variable patterns.

        `bar`
        Bar
        (a, b)
        _: T

    If the pattern is a simple identifier, it is always a variable pattern. For example, the following introduce new bindings:

        for { X <- xs } yield X
        for { `backquoted` <- xs } yield `backquoted`

    Note that this differs from a case clause:

        object X
        scrut match {
           case X =>  // case _ if scrut == X
        }

    Background: https://groups.google.com/d/msg/scala-internals/qwa_XOw_7Ks/IktkeTBYqg0J

    Definition Classes
      TreeInfo
71.  def isVariableOrGetter(tree: JavaUniverse.Tree): Boolean

    Is tree a mutable variable, or the getter of a mutable field?

    Is tree a mutable variable, or the getter of a mutable field?

    Definition Classes
      TreeInfo
72.  def isWildcardArg(tree: JavaUniverse.Tree): Boolean

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

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

    Definition Classes
      TreeInfo
73.  def isWildcardStarArg(tree: JavaUniverse.Tree): Boolean

    Is this argument node of the form <expr> : _* ?

    Is this argument node of the form <expr> : _* ?

    Definition Classes
      TreeInfo
74.  def isWildcardStarArgList(trees: List[JavaUniverse.Tree]): Boolean

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

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

    Definition Classes
      TreeInfo
75.  def isWildcardStarType(tree: JavaUniverse.Tree): Boolean

    Is the argument a wildcard star type of the form `_*`?

    Is the argument a wildcard star type of the form `_*`?

    Definition Classes
      TreeInfo
76.  def mapMethodParamsAndArgs[R](params: List[JavaUniverse.Symbol], args: List[JavaUniverse.Tree])(f: (JavaUniverse.Symbol, JavaUniverse.Tree) => R): List[R]
    Definition Classes
      TreeInfo
77.  final def mayBeTypePat(tree: JavaUniverse.Tree): Boolean

    can this type be a type pattern

    can this type be a type pattern

    Definition Classes
      TreeInfo
78.  def mayBeVarGetter(sym: JavaUniverse.Symbol): Boolean

    Is symbol potentially a getter of a variable?

    Is symbol potentially a getter of a variable?

    Definition Classes
      TreeInfo
79.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
80.  def noFieldFor(vd: JavaUniverse.ValDef, owner: JavaUniverse.Symbol): Boolean
    Definition Classes
      TreeInfo
81.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
82.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
83.  def preSuperFields(stats: List[JavaUniverse.Tree]): List[JavaUniverse.ValDef]

    The value definitions marked PRESUPER in this statement sequence

    The value definitions marked PRESUPER in this statement sequence

    Definition Classes
      TreeInfo
84.  final def stripCast(tree: JavaUniverse.Tree): JavaUniverse.Tree

    Strips layers of `.asInstanceOf[T]` / `_.$asInstanceOf[T]()` from an expression

    Strips layers of `.asInstanceOf[T]` / `_.$asInstanceOf[T]()` from an expression

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
85.  def stripNamedApplyBlock(tree: JavaUniverse.Tree): JavaUniverse.Tree

    Named arguments can transform a constructor call into a block, e.g.

    Named arguments can transform a constructor call into a block, e.g. <init>(b = foo, a = bar) is transformed to { val x$1 = foo val x$2 = bar <init>(x$2, x$1) }

    Definition Classes
      TreeInfo
86.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
87.  def toString(): String
    Definition Classes
      AnyRef → Any
88.  def typeParameters(tree: JavaUniverse.Tree): List[JavaUniverse.TypeDef]

    If this tree has type parameters, those.

    If this tree has type parameters, those. Otherwise Nil.

    Definition Classes
      TreeInfo
89.  final def unbind(x: JavaUniverse.Tree): JavaUniverse.Tree

    The underlying pattern ignoring any bindings

    The underlying pattern ignoring any bindings

    Definition Classes
      TreeInfo
    Annotations
      @tailrec()
90.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
91.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
92.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()
93.  object Application

    Deconstructs an application into fun (typically a Select), targs and argss.

    Deconstructs an application into fun (typically a Select), targs and argss. Unlike `Applied`, only matches if the tree is actually an application (Apply and / or TypeApply).

    Definition Classes
      TreeInfo
94.  object Applied

    Destructures applications into important subparts described in `Applied` class, namely into: core, targs and argss (in the specified order).

    Destructures applications into important subparts described in `Applied` class, namely into: core, targs and argss (in the specified order).

    Trees which are not applications are also accepted. Their callee and core will be equal to the input, while targs and argss will be Nil.

    The provided extractors don't expose all the API of the `Applied` class. For advanced use, call `dissectApplied` explicitly and use its methods instead of pattern matching.

    Definition Classes
      TreeInfo
95.  object DynamicApplication extends DynamicApplicationExtractor
    Definition Classes
      TreeInfo
96.  object DynamicApplicationNamed extends DynamicApplicationExtractor
    Definition Classes
      TreeInfo
97.  object DynamicUpdate extends DynamicApplicationExtractor
    Definition Classes
      TreeInfo
98.  object IsFalse extends SeeThroughBlocks[Boolean]
    Definition Classes
      TreeInfo
99.  object IsTrue extends SeeThroughBlocks[Boolean]
    Definition Classes
      TreeInfo
100.  object MacroImplReference
     Definition Classes
       TreeInfo
101.  object StripCast
     Definition Classes
       TreeInfo
102.  object Unapplied

     Locates the synthetic Apply node corresponding to an extractor's call to unapply (unwrapping nested Applies) and returns the fun part of that Apply.

     Locates the synthetic Apply node corresponding to an extractor's call to unapply (unwrapping nested Applies) and returns the fun part of that Apply.

     Definition Classes
       TreeInfo
103.  object WildcardStarArg
     Definition Classes
       TreeInfo

### Inherited from TreeInfo

### Inherited from AnyRef

### Inherited from Any

### Ungrouped