Trait

scala.tools.refactoring.analysis

GlobalIndexes

Related Doc: package analysis

Permalink

trait GlobalIndexes extends Indexes with DependentSymbolExpanders with CompilationUnitIndexes with EnrichedTrees with InteractiveScalaCompiler with TreeTraverser

Provides an implementation of the Indexes.IndexLookup trait by combining various CompilationUnitIndexes. Note that creating the GlobalIndex is cheap, all the compilation units were already indexed, and all further work is only done on demand.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. GlobalIndexes
  2. TreeTraverser
  3. InteractiveScalaCompiler
  4. CompilerAccess
  5. EnrichedTrees
  6. CompilationUnitIndexes
  7. DependentSymbolExpanders
  8. SilentTracing
  9. Tracing
  10. Indexes
  11. AnyRef
  12. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait CaseClassVals extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink

    Associates case class vals with the parameters of generated apply and copy methods

    Associates case class vals with the parameters of generated apply and copy methods

    Definition Classes
    DependentSymbolExpanders
  2. trait ClassVals extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink

    Associates class vals with constructor parameters

    Associates class vals with constructor parameters

    Definition Classes
    DependentSymbolExpanders
  3. trait Companion extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink
    Definition Classes
    DependentSymbolExpanders
  4. trait CompilationUnitIndex extends AnyRef

    Permalink
    Definition Classes
    CompilationUnitIndexes
  5. implicit class DefDefMethods extends AnyRef

    Permalink
    Definition Classes
    EnrichedTrees
  6. trait ExpandGetterSetters extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink
    Definition Classes
    DependentSymbolExpanders
  7. class FilterTreeTraverser extends nsc.Global.FilterTreeTraverser with (TreeTraverser.this)#Traverser with (TreeTraverser.this)#TraversalInstrumentation

    Permalink
    Definition Classes
    TreeTraverser
  8. trait GlobalIndex extends IndexLookup

    Permalink
  9. case class ImportSelectorTree(name: (EnrichedTrees.this)#NameTree, rename: nsc.Global.Tree) extends nsc.Global.Tree with Product with Serializable

    Permalink

    Represent an import selector as a tree, including both names as trees.

    Represent an import selector as a tree, including both names as trees.

    Definition Classes
    EnrichedTrees
  10. implicit class ImportSelectorTreeExtractor extends AnyRef

    Permalink

    Import selectors are not trees, but we can provide an extractor that converts the ImportSelectors into our own ImportSelectorTrees.

    Import selectors are not trees, but we can provide an extractor that converts the ImportSelectors into our own ImportSelectorTrees.

    Definition Classes
    EnrichedTrees
  11. trait IndexLookup extends AnyRef

    Permalink
    Definition Classes
    Indexes
  12. trait LazyValAccessor extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink
    Definition Classes
    DependentSymbolExpanders
  13. case class ModifierTree(flag: Long) extends nsc.Global.Tree with Product with Serializable

    Permalink

    Represent a modifier as a tree, including its position.

    Represent a modifier as a tree, including its position.

    Definition Classes
    EnrichedTrees
  14. case class MultipleAssignment(extractor: nsc.Global.Tree, names: List[nsc.Global.ValDef], rhs: nsc.Global.Tree) extends nsc.Global.Tree with Product with Serializable

    Permalink
    Definition Classes
    EnrichedTrees
  15. case class NameTree(name: nsc.Global.Name) extends nsc.Global.Tree with Product with Serializable

    Permalink

    Represent a Name as a tree, including its position.

    Represent a Name as a tree, including its position.

    Definition Classes
    EnrichedTrees
  16. case class NamedArgument(nameTree: (EnrichedTrees.this)#NameTree, rhs: nsc.Global.Tree) extends nsc.Global.SymTree with nsc.Global.RefTree with Product with Serializable

    Permalink
    Definition Classes
    EnrichedTrees
  17. class NotInstanceOf[T] extends AnyRef

    Permalink
    Definition Classes
    EnrichedTrees
  18. trait OverridesInSuperClasses extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink
    Definition Classes
    DependentSymbolExpanders
  19. abstract class PlainText extends nsc.Global.Tree

    Permalink

    The PlainText "tree" provides a hook into the source code generation.

    The PlainText "tree" provides a hook into the source code generation. When a PlainText tree occurs during source code generation, its print method is called with the current AbstractPrinter#PrintingContext. The result is inserted into the generated source code.

    For some use cases (blank line, raw and indented string) implementations already exist in the PlainText object.

    Note that PlainText trees should never be allowed to escape the Scala refactoring library, so be careful when using compiler utilities to transform trees.

    Definition Classes
    EnrichedTrees
  20. trait PlainTraversals extends nsc.Global.Traverser

    Permalink
    Attributes
    protected
    Definition Classes
    TreeTraverser
  21. implicit class RichModifiers extends AnyRef

    Permalink
    Definition Classes
    EnrichedTrees
  22. case class SelfTypeTree(name: (EnrichedTrees.this)#NameTree, tpt: nsc.Global.Tree) extends nsc.Global.Tree with Product with Serializable

    Permalink

    Representation of self type annotations: self: A with B => ^^^^^^^^^^^^^^

    Representation of self type annotations: self: A with B => ^^^^^^^^^^^^^^

    Definition Classes
    EnrichedTrees
  23. case class SuperConstructorCall(clazz: nsc.Global.Tree, args: List[nsc.Global.Tree]) extends nsc.Global.Tree with Product with Serializable

    Permalink

    The call to the super constructor in a class: class A(i: Int) extends B(i) ^^^^

    The call to the super constructor in a class: class A(i: Int) extends B(i) ^^^^

    Definition Classes
    EnrichedTrees
  24. trait SuperConstructorParameters extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink
    Definition Classes
    DependentSymbolExpanders
  25. trait SymbolExpander extends AnyRef

    Permalink

    The basic trait that is extended by the concrete expanders.

    The basic trait that is extended by the concrete expanders.

    Definition Classes
    DependentSymbolExpanders
  26. class TemplateMethods extends AnyRef

    Permalink
    Definition Classes
    EnrichedTrees
  27. trait TermsWithMissingRanges extends (DependentSymbolExpanders.this)#SymbolExpander

    Permalink

    Associates term symbols with missing ranges to related symbols that have ranges.

    Associates term symbols with missing ranges to related symbols that have ranges.

    The reason that we need this is that in some cases, the PC generates multiple symbols for one and the same symbol in user source code, one of them with a proper range position, and others just with offset positions. One place where this happens is in desugared for comprehensions with filter clauses. See Assembler Ticket #1002650.

    Definition Classes
    DependentSymbolExpanders
  28. abstract class TraceAndReturn[T] extends AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    Tracing
  29. type TraversalInstrumentation = PlainTraversals

    Permalink

    Use TraversalTracing for debugging and PlainTraversals for production

    Use TraversalTracing for debugging and PlainTraversals for production

    Attributes
    protected
    Definition Classes
    TreeTraverser
  30. trait TraversalTracing extends nsc.Global.Traverser

    Permalink
    Attributes
    protected
    Definition Classes
    TreeTraverser
  31. trait Traverser extends nsc.Global.Traverser

    Permalink

    A traverser that also traverses a TypeTree's original type.

    A traverser that also traverses a TypeTree's original type.

    Definition Classes
    TreeTraverser
  32. trait TraverserWithFakedTrees extends nsc.Global.Traverser with (TreeTraverser.this)#TraversalInstrumentation

    Permalink

    A traverser that creates fake trees for various type trees so they can be treated as if they were regular trees.

    A traverser that creates fake trees for various type trees so they can be treated as if they were regular trees.

    Definition Classes
    TreeTraverser
  33. class TreeMethodsForPositions extends AnyRef

    Permalink

    Add some methods to Tree that make it easier to compare Trees by position and to extract the position of a tree's name, which is tricky for Selects.

    Add some methods to Tree that make it easier to compare Trees by position and to extract the position of a tree's name, which is tricky for Selects.

    Definition Classes
    EnrichedTrees
  34. class TreeWithSymbolTraverser extends nsc.Global.Traverser with (TreeTraverser.this)#Traverser with (TreeTraverser.this)#TraversalInstrumentation

    Permalink
    Definition Classes
    TreeTraverser
  35. case class SourceLayoutTree(kind: Kinds) extends nsc.Global.Tree with Product with Serializable

    Permalink

    A SourceLayoutTree can be used to insert arbitrary text into the code, for example, blank lines.

    A SourceLayoutTree can be used to insert arbitrary text into the code, for example, blank lines.

    Definition Classes
    EnrichedTrees
    Annotations
    @deprecated
    Deprecated

    (Since version 0.5.0) Use PlainText objects and its components

Abstract Value Members

  1. abstract val global: Global

    Permalink
  2. abstract def index: IndexLookup

    Permalink
    Definition Classes
    Indexes

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object ApplyExtractor

    Permalink

    Extracts information from ApplyNodes

    Extracts information from ApplyNodes

    The main feature of this extractor is that reverses the desugarings the compiler performs for named arguments by creating scala.tools.refactoring.common.EnrichedTrees.NamedArgument instances as necessary. Apart from that, this object is meant to mimic the regular scala.reflect.api.Trees.ApplyExtractor.

    Definition Classes
    EnrichedTrees
  5. object BlockExtractor

    Permalink

    Unify the children of a Block tree and sort them in the same order they appear in the source code.

    Unify the children of a Block tree and sort them in the same order they appear in the source code.

    Also reshapes some trees: multiple assignments are removed and named argument trees are created.

    Note that this extractor is needed primarily for tree printing. The rename refactoring for example, that doesn't use tree printing, would work with

    object BlockExtractor {
      def unapply(t: Block) = {
        Some(t.expr :: t.stats)
      }
    }

    as well.

    Definition Classes
    EnrichedTrees
  6. object CompilationUnitIndex

    Permalink
    Definition Classes
    CompilationUnitIndexes
  7. val EmptyIndex: IndexLookup

    Permalink
  8. object GlobalIndex

    Permalink
  9. object ModifierTree extends Serializable

    Permalink

    Extract the modifiers with their position from a Modifiers object.

    Extract the modifiers with their position from a Modifiers object.

    Definition Classes
    EnrichedTrees
  10. object NameTree extends Serializable

    Permalink
    Definition Classes
    EnrichedTrees
  11. object NoBlock extends (EnrichedTrees.this)#NotInstanceOf[nsc.Global.Block]

    Permalink
    Definition Classes
    EnrichedTrees
  12. object NoFunction extends (EnrichedTrees.this)#NotInstanceOf[nsc.Global.Function]

    Permalink
    Definition Classes
    EnrichedTrees
  13. object NoImportSelectorTree extends (EnrichedTrees.this)#NotInstanceOf[(EnrichedTrees.this)#ImportSelectorTree]

    Permalink
    Definition Classes
    EnrichedTrees
  14. object NoPackageDef extends (EnrichedTrees.this)#NotInstanceOf[nsc.Global.PackageDef]

    Permalink
    Definition Classes
    EnrichedTrees
  15. object PlainText

    Permalink
    Definition Classes
    EnrichedTrees
  16. object TemplateExtractor

    Permalink

    Provides a finer-grained extractor for Template that distinguishes between class constructor parameters, early definitions, parents, self type annotation and the real body.

    Provides a finer-grained extractor for Template that distinguishes between class constructor parameters, early definitions, parents, self type annotation and the real body.

    Definition Classes
    EnrichedTrees
  17. object ValOrDefDef

    Permalink

    Copy of scala.reflect.internal.Trees.ValOrDefDef of 2.11 to support 2.10.

    Copy of scala.reflect.internal.Trees.ValOrDefDef of 2.11 to support 2.10.

    Definition Classes
    EnrichedTrees
  18. implicit def additionalTemplateMethods(t: nsc.interactive.Global.Template): TemplateMethods

    Permalink
    Definition Classes
    EnrichedTrees
  19. implicit def additionalTreeMethodsForPositions(t: nsc.interactive.Global.Tree): TreeMethodsForPositions

    Permalink
    Definition Classes
    EnrichedTrees
  20. def ancestorSymbols(t: nsc.interactive.Global.Tree): List[nsc.interactive.Global.Symbol]

    Permalink

    returns

    Returns the (symbol) ancestors of the tree excluding the ROOT in descending order. Also filters the symbols for package objects!

    Definition Classes
    EnrichedTrees
  21. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  22. def asSelectorString(t: nsc.interactive.Global.Tree): String

    Permalink

    Converts a tree containing Idents and Selects to a . separated string.

    Converts a tree containing Idents and Selects to a . separated string.

    Definition Classes
    EnrichedTrees
  23. def askLoadedAndTypedTreeForFile(file: SourceFile): Either[nsc.interactive.Global.Tree, Throwable]

    Permalink

    Returns a fully loaded and typed Tree instance for the given SourceFile.

    Returns a fully loaded and typed Tree instance for the given SourceFile.

    Definition Classes
    InteractiveScalaCompiler
  24. def children: (nsc.interactive.Global.Tree) ⇒ List[nsc.interactive.Global.Tree]

    Permalink

    Returns all children that have a representation in the source code.

    Returns all children that have a representation in the source code. This includes Name and Modifier trees and excludes everything that has no Position or is an EmptyTree.

    Definition Classes
    EnrichedTrees
  25. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. def compilationUnitOfFile(f: AbstractFile): Option[nsc.interactive.Global.RichCompilationUnit]

    Permalink
  27. def context[T](name: String)(body: ⇒ T): T

    Permalink
    Definition Classes
    SilentTracingTracing
    Annotations
    @inline()
  28. def endPositionAtEndOfSourceFile(pos: nsc.interactive.Global.Position, otherWise: Option[Int] = None): Int

    Permalink

    Trees that reach the end of the file don't seem to have the correct end position, except if there's a newline at the end.

    Trees that reach the end of the file don't seem to have the correct end position, except if there's a newline at the end.

    Definition Classes
    EnrichedTrees
  29. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  30. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  31. def escapeScalaKeywordsForImport(n: String): String

    Permalink
    Definition Classes
    EnrichedTrees
  32. def escapeScalaKeywordsForImport(n: nsc.interactive.Global.Name): String

    Permalink

    Takes a name and wraps it in if the name corresponds to a Scala keyword.

    Takes a name and wraps it in if the name corresponds to a Scala keyword.

    Definition Classes
    EnrichedTrees
  33. def filterTree(t: nsc.interactive.Global.Tree, traverser: nsc.interactive.Global.FilterTreeTraverser): collection.immutable.List[nsc.interactive.Global.Tree]

    Permalink
    Definition Classes
    TreeTraverser
  34. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  35. val findAllTreesWithTheSamePosition: (nsc.interactive.Global.Tree) ⇒ Iterable[nsc.interactive.Global.Tree]

    Permalink
    Definition Classes
    EnrichedTrees
  36. def findOriginalTree: (nsc.interactive.Global.Tree) ⇒ Option[nsc.interactive.Global.Tree]

    Permalink

    Finds a tree by its position, can be used to find the original tree from a transformed tree.

    Finds a tree by its position, can be used to find the original tree from a transformed tree.

    If multiple trees are candidates, then take the last one, because it is likely more specific.

    Definition Classes
    EnrichedTrees
  37. def findSymbolForImportSelector(expr: nsc.interactive.Global.Tree, name: nsc.interactive.Global.Name): Option[nsc.interactive.Global.Symbol]

    Permalink

    Searches for a Symbol of a name in the type members of a tree.

    Searches for a Symbol of a name in the type members of a tree.

    This is mainly used for ImportSelectors, which don't carry any symbol information with them.

    expr

    The expr of an Import tree.

    name

    The name of an ImportSelector of the import.

    Definition Classes
    EnrichedTrees
  38. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  39. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  40. def isClassTag(c: nsc.interactive.Global.Constant): Boolean

    Permalink
    Definition Classes
    EnrichedTrees
  41. def isEmptyTree(t: nsc.interactive.Global.Tree): Boolean

    Permalink

    Returns whether the tree is considered empty.

    Returns whether the tree is considered empty.

    Prior to Scala 2.10.1 it was sufficient to check Tree#isEmpty, but now we also need to check if the tree is equal to emptyValDef.

    Definition Classes
    EnrichedTrees
  42. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  43. def keepTree(t: nsc.interactive.Global.Tree): Boolean

    Permalink
    Definition Classes
    EnrichedTrees
  44. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  45. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  46. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  47. val originalLeftSibling: (nsc.interactive.Global.Tree) ⇒ Option[nsc.interactive.Global.Tree]

    Permalink
    Definition Classes
    EnrichedTrees
  48. val originalParentOf: (nsc.interactive.Global.Tree) ⇒ Option[nsc.interactive.Global.Tree]

    Permalink
    Definition Classes
    EnrichedTrees
  49. val originalRightSibling: (nsc.interactive.Global.Tree) ⇒ Option[nsc.interactive.Global.Tree]

    Permalink
    Definition Classes
    EnrichedTrees
  50. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  51. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  52. def topPackageDef(t: nsc.interactive.Global.PackageDef): nsc.interactive.Global.PackageDef

    Permalink

    returns

    Returns the most specific package declaration in the compilation unit. For example, given the following declaration: package a package b class C it returns b. If there are further nested packages, they are ignored: package a class C package b returns a.

    Definition Classes
    EnrichedTrees
  53. def trace(msg: ⇒ String): Unit

    Permalink
    Definition Classes
    SilentTracingTracing
    Annotations
    @inline()
  54. def trace(msg: ⇒ String, arg1: ⇒ Any, args: Any*): Unit

    Permalink
    Definition Classes
    SilentTracingTracing
    Annotations
    @inline()
  55. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  57. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. implicit final def wrapInTraceAndReturn[T](t: T): TraceAndReturn[T]

    Permalink
    Attributes
    protected
    Definition Classes
    SilentTracingTracing

Deprecated Value Members

  1. object SourceLayouts

    Permalink
    Definition Classes
    EnrichedTrees
    Annotations
    @deprecated
    Deprecated

    (Since version 0.5.0) Use PlainText objects and its components

Inherited from TreeTraverser

Inherited from InteractiveScalaCompiler

Inherited from CompilerAccess

Inherited from EnrichedTrees

Inherited from CompilationUnitIndexes

Inherited from DependentSymbolExpanders

Inherited from SilentTracing

Inherited from Tracing

Inherited from Indexes

Inherited from AnyRef

Inherited from Any

Ungrouped