scala.tools.refactoring.analysis

ImportAnalysis

trait ImportAnalysis extends TreeFactory with PimpedTrees with TreeTransformations with CompilerAccess

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ImportAnalysis
  2. CompilerAccess
  3. TreeTransformations
  4. Transformations
  5. PimpedTrees
  6. TreeFactory
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. implicit class AdditionalListMethods[T] extends AnyRef

    Replace the first sequence of elements with another sequence.

  2. implicit class AdditionalTreeListMethods extends AnyRef

    Definition Classes
    TreeTransformations
  3. implicit class CopyTypeFromOtherTree extends AnyRef

    Definition Classes
    TreeFactory
  4. implicit class DefDefMethods extends AnyRef

    Definition Classes
    PimpedTrees
  5. case class ExplicitImport(imp: nsc.Global.Import, selector: nsc.Global.ImportSelector, enclosing: nsc.Global.Tree, children: List[ImportTree]) extends ImportTree with Product with Serializable

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

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

  7. implicit class ImportSelectorTreeExtractor extends AnyRef

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

  8. sealed trait ImportTree extends Traversable[ImportTree]

    Import trees represents a set of import statements and allows queries to determine if a symbol is imported at a certain position.

  9. case class ModifierTree(flag: Long) extends nsc.Global.Tree with Product with Serializable

    Represent a modifier as a tree, including its position.

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

    Definition Classes
    PimpedTrees
  11. case class NameTree(name: nsc.Global.Name) extends nsc.Global.Tree with Product with Serializable

    Represent a Name as a tree, including its position.

  12. case class NamedArgument(nameTree: (PimpedTrees.this)#NameTree, rhs: nsc.Global.Tree) extends nsc.Global.SymTree with nsc.Global.RefTree with Product with Serializable

    Definition Classes
    PimpedTrees
  13. class NotInstanceOf[T] extends AnyRef

    Definition Classes
    PimpedTrees
  14. abstract class PlainText extends nsc.Global.Tree

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

  15. case class Root(enclosing: nsc.Global.Tree, chs: List[ImportTree]) extends ImportTree with Product with Serializable

  16. case class SelfTypeTree(name: (PimpedTrees.this)#NameTree, tpt: nsc.Global.Tree) extends nsc.Global.Tree with Product with Serializable

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

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

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

  18. class TemplateMethods extends AnyRef

    Definition Classes
    PimpedTrees
  19. abstract class Transformation[X, Y] extends (X) ⇒ Option[Y]

    Definition Classes
    Transformations
  20. class TreeMethodsForPositions extends AnyRef

    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.

  21. implicit class TreeReplacesOtherTreeViaPosition[T <: nsc.Global.Tree] extends AnyRef

    Definition Classes
    TreeTransformations
  22. case class WildcardImport(imp: nsc.Global.Import, enclosing: nsc.Global.Tree, children: List[ImportTree]) extends ImportTree with Product with Serializable

  23. type X = nsc.Global.Tree

    Definition Classes
    Transformations
  24. case class SourceLayoutTree(kind: Kinds) extends nsc.Global.Tree with Product with Serializable

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

Abstract Value Members

  1. abstract def compilationUnitOfFile(f: AbstractFile): Option[nsc.Global.CompilationUnit]

    Definition Classes
    CompilerAccess
  2. abstract val global: Global

    Definition Classes
    CompilerAccess

Concrete Value Members

  1. def ![X](t: ⇒ T[X, X]): Transformation[X, X]

    Definition Classes
    Transformations
  2. final def !=(arg0: AnyRef): Boolean

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

    Definition Classes
    Any
  4. final def ##(): Int

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

    Definition Classes
    AnyRef
  6. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  7. object ApplyExtractor

    Definition Classes
    PimpedTrees
  8. object BlockExtractor

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

  9. object Invisible extends nsc.Global.Position

    Definition Classes
    TreeFactory
  10. object ModifierTree extends Serializable

    Extract the modifiers with their position from a Modifiers object.

  11. object NameTree extends Serializable

    Definition Classes
    PimpedTrees
  12. object NoBlock extends (PimpedTrees.this)#NotInstanceOf[nsc.Global.Block]

    Definition Classes
    PimpedTrees
  13. object NoFunction extends (PimpedTrees.this)#NotInstanceOf[nsc.Global.Function]

    Definition Classes
    PimpedTrees
  14. object NoImportSelectorTree extends (PimpedTrees.this)#NotInstanceOf[(PimpedTrees.this)#ImportSelectorTree]

    Definition Classes
    PimpedTrees
  15. object NoPackageDef extends (PimpedTrees.this)#NotInstanceOf[nsc.Global.PackageDef]

    Definition Classes
    PimpedTrees
  16. object PlainText

    Definition Classes
    PimpedTrees
  17. object TemplateExtractor

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

  18. def abstractFileToTree(file: AbstractFile): nsc.Global.Tree

    Definition Classes
    TreeTransformations
  19. def addImportTransformation(importsToAdd: Iterable[String]): Transformation[nsc.Global.Tree, nsc.Global.Tree]

    Definition Classes
    TreeTransformations
  20. implicit def additionalTemplateMethods(t: nsc.Global.Template): TemplateMethods

    Definition Classes
    PimpedTrees
  21. implicit def additionalTreeMethodsForPositions(t: nsc.Global.Tree): TreeMethodsForPositions

    Definition Classes
    PimpedTrees
  22. def allChildren(t: ⇒ T[X, X]): T[X, X]

    Applies a transformation to all subtrees of a tree T, returning a new tree,typically of the same kind as T.

    Applies a transformation to all subtrees of a tree T, returning a new tree,typically of the same kind as T.

    If the transformation fails on one child, abort and fail the whole application.

    Definition Classes
    Transformations
  23. def ancestorSymbols(t: nsc.Global.Tree): List[nsc.Global.Symbol]

    returns

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

    Definition Classes
    PimpedTrees
  24. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  25. def asSelectorString(t: nsc.Global.Tree): String

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

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

    Definition Classes
    PimpedTrees
  26. def bottomup(t: ⇒ T[X, X]): T[X, X]

    Definition Classes
    Transformations
  27. def buildImportTree(root: nsc.Global.Tree): ImportTree

    Creates an ImportTree over all import statements in root.

  28. def children: (nsc.Global.Tree) ⇒ List[nsc.Global.Tree]

    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
    PimpedTrees
  29. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. def constant(y: X): T[X, X]

    Creates a transformation that always returns the value x.

    Creates a transformation that always returns the value x.

    Definition Classes
    Transformations
  31. def endPositionAtEndOfSourceFile(pos: nsc.Global.Position, otherWise: Option[Int] = None): Int

    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
    PimpedTrees
  32. final def eq(arg0: AnyRef): Boolean

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

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

    Definition Classes
    PimpedTrees
  35. def escapeScalaKeywordsForImport(n: nsc.Global.Name): String

    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
    PimpedTrees
  36. def fail[X]: T[X, X]

    Always fails, independent of the input.

    Always fails, independent of the input.

    Definition Classes
    Transformations
  37. def filter(f: PartialFunction[nsc.Global.Tree, Boolean]): T[nsc.Global.Tree, nsc.Global.Tree]

    Definition Classes
    TreeTransformations
  38. def finalize(): Unit

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

    Definition Classes
    PimpedTrees
  40. def findOriginalTree: (nsc.Global.Tree) ⇒ Option[nsc.Global.Tree]

    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
    PimpedTrees
  41. def findSymbolForImportSelector(expr: nsc.Global.Tree, name: nsc.Global.Name): Option[nsc.Global.Symbol]

    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
    PimpedTrees
  42. final def getClass(): Class[_]

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

    Definition Classes
    AnyRef → Any
  44. def id[X]: T[X, X]

    Definition Classes
    Transformations
  45. def isClassTag(c: nsc.Global.Constant): Boolean

    Definition Classes
    PimpedTrees
  46. def isEmptyTree(t: nsc.Global.Tree): Boolean

    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
    PimpedTrees
  47. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  48. def keepTree(t: nsc.Global.Tree): Boolean

    Definition Classes
    PimpedTrees
  49. val locatePackageLevelImports: T[nsc.Global.Tree, (nsc.Global.PackageDef, List[nsc.Global.Import], List[nsc.Global.Tree])]

    Locates the imports in a PackageDef.

    Locates the imports in a PackageDef. If we have nested packages, it will only match in the innermost.

    Definition Classes
    TreeTransformations
  50. def matchingChildren(t: T[X, X]): T[X, X]

    Applies a transformation to all subtrees of a tree T, returning a new tree,typically of the same kind as T.

    Applies a transformation to all subtrees of a tree T, returning a new tree,typically of the same kind as T.

    If the transformation fails on one child, apply the identity transformation id and don't fail, unlike allChildren.

    Definition Classes
    Transformations
  51. def mkApply(mods: nsc.Global.Modifiers = NoMods, parameters: List[List[nsc.Global.Symbol]] = Nil :: Nil, body: List[nsc.Global.Tree], typeParameters: List[nsc.Global.TypeDef] = Nil): nsc.Global.DefDef

    Definition Classes
    TreeFactory
  52. def mkAssignmentToCall(call: nsc.Global.Tree, returns: List[nsc.Global.Symbol]): nsc.Global.Tree

    Definition Classes
    TreeFactory
  53. def mkBlock(trees: List[nsc.Global.Tree]): nsc.Global.Block

    Definition Classes
    TreeFactory
  54. def mkCallDefDef(name: String, arguments: List[List[nsc.Global.Symbol]] = Nil :: Nil, returns: List[nsc.Global.Symbol] = Nil): nsc.Global.Tree

    Definition Classes
    TreeFactory
  55. def mkCallValDef(name: String, returns: List[nsc.Global.Symbol] = Nil): nsc.Global.Tree

    Definition Classes
    TreeFactory
  56. def mkCanEqual(classSymbol: nsc.Global.Symbol): nsc.Global.DefDef

    Definition Classes
    TreeFactory
  57. def mkCaseClass(mods: nsc.Global.Modifiers = NoMods, name: String, tparams: List[nsc.Global.TypeDef] = Nil, argss: List[List[(nsc.Global.Modifiers, String, nsc.Global.Tree)]] = Nil, body: List[nsc.Global.Tree] = Nil, parents: List[nsc.Global.Tree] = Nil, superArgs: List[nsc.Global.Tree] = Nil): nsc.Global.ClassDef

    Definition Classes
    TreeFactory
  58. def mkClass(mods: nsc.Global.Modifiers = NoMods, name: String, tparams: List[nsc.Global.TypeDef] = Nil, argss: List[List[(nsc.Global.Modifiers, String, nsc.Global.Tree)]] = Nil, body: List[nsc.Global.Tree] = Nil, parents: List[nsc.Global.Tree] = Nil, superArgs: List[nsc.Global.Tree] = Nil): nsc.Global.ClassDef

    Definition Classes
    TreeFactory
  59. def mkDefDef(mods: nsc.Global.Modifiers = NoMods, name: String, parameters: List[List[nsc.Global.Symbol]] = Nil :: Nil, body: List[nsc.Global.Tree], typeParameters: List[nsc.Global.TypeDef] = Nil, returnTypeOpt: Option[nsc.Global.TypeTree] = None): nsc.Global.DefDef

    Definition Classes
    TreeFactory
  60. def mkEquals(classSymbol: nsc.Global.Symbol, classParamsForEqual: List[nsc.Global.ValDef], callSuper: Boolean): nsc.Global.DefDef

    Definition Classes
    TreeFactory
  61. def mkFunctionCallWithFunctionArgument(selector: nsc.Global.Tree, fun: String, param: nsc.Global.TermName, body: nsc.Global.Tree): nsc.Global.Tree

    Creates a function call fun on the selector and passes a function with a single parameter param and the body body.

    Creates a function call fun on the selector and passes a function with a single parameter param and the body body.

    Example:

    someExpr becomes someExpr fun (param => body)

    Definition Classes
    TreeFactory
  62. def mkFunctionCallWithZeroArgFunctionArgument(selector: nsc.Global.Tree, fun: String, body: nsc.Global.Tree): nsc.Global.Tree

    Creates a function call fun on the selector and passes a function with no parameter and the body body.

    Creates a function call fun on the selector and passes a function with no parameter and the body body.

    Example:

    someExpr becomes someExpr fun (body)

    Definition Classes
    TreeFactory
  63. def mkHashcode(classSymbol: nsc.Global.Symbol, classParamsForHashcode: List[nsc.Global.ValDef], callSuper: Boolean, prime: Int = 41): nsc.Global.DefDef

    Definition Classes
    TreeFactory
  64. def mkImportFromStrings(qualifier: String, name: String): nsc.Global.Import

    Definition Classes
    TreeFactory
  65. def mkImportTrees(trees: List[nsc.Global.Select], enclosingPackage: String): collection.immutable.List[nsc.Global.Import]

    Definition Classes
    TreeFactory
  66. def mkModule(mods: nsc.Global.Modifiers = NoMods, name: String, body: List[nsc.Global.Tree] = Nil, parents: List[nsc.Global.Tree] = Nil): nsc.Global.ModuleDef

    Definition Classes
    TreeFactory
  67. def mkParam(name: String, tpe: nsc.Global.Type, defaultVal: nsc.Global.Tree = EmptyTree): nsc.Global.ValDef

    Definition Classes
    TreeFactory
  68. def mkRenamedImportTree(t: ImportSelectorTree, name: String): ImportSelectorTree

    Definition Classes
    TreeFactory
  69. def mkRenamedSymTree(t: nsc.Global.SymTree, nameString: String): nsc.Global.SymTree

    Definition Classes
    TreeFactory
  70. def mkRenamedTypeTree(t: nsc.Global.TypeTree, name: String, originalSymbol: nsc.Global.Symbol): nsc.Global.TypeTree

    Definition Classes
    TreeFactory
  71. def mkReturn(s: List[nsc.Global.Symbol]): nsc.Global.Tree

    Definition Classes
    TreeFactory
  72. def mkValDef(name: String, rhs: nsc.Global.Tree, tpt: nsc.Global.TypeTree = new TypeTree): nsc.Global.ValDef

    Definition Classes
    TreeFactory
  73. def mkValOrVarDef(mods: nsc.Global.Modifiers, name: String, rhs: nsc.Global.Tree, tpt: nsc.Global.TypeTree = new TypeTree): nsc.Global.ValDef

    Definition Classes
    TreeFactory
  74. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  75. def not[X](t: ⇒ T[X, X]): Transformation[X, X]

    Definition Classes
    Transformations
  76. final def notify(): Unit

    Definition Classes
    AnyRef
  77. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  78. def once[X <: AnyRef](t: T[X, X]): T[X, X]

    Do a transformation until it succeeded once, then just fail.

    Do a transformation until it succeeded once, then just fail.

    Note that because of the statefulness of once, you need to make sure that it isn't accidentally passed as a by-name parameter to another transformation and instantiated multiple times.

    Definition Classes
    Transformations
  79. val originalLeftSibling: (nsc.Global.Tree) ⇒ Option[nsc.Global.Tree]

    Definition Classes
    PimpedTrees
  80. val originalParentOf: (nsc.Global.Tree) ⇒ Option[nsc.Global.Tree]

    Definition Classes
    PimpedTrees
  81. val originalRightSibling: (nsc.Global.Tree) ⇒ Option[nsc.Global.Tree]

    Definition Classes
    PimpedTrees
  82. def postorder(t: ⇒ T[X, X]): T[X, X]

    Definition Classes
    Transformations
  83. def predicate[X](f: (X) ⇒ Boolean): T[X, X]

    Definition Classes
    Transformations
  84. def predicate[X](f: PartialFunction[X, Boolean]): T[X, X]

    We often want to use transformations as predicates, which execute the next transformations if the result is true.

    We often want to use transformations as predicates, which execute the next transformations if the result is true. For example:

    val tree_with_range_pos = filter[Tree] { case t: Tree => t.pos.isRange }

    We can then use the predicate like this: tree_with_range_pos andThen do_something_with_the_tree orElse nothing

    Definition Classes
    Transformations
  85. def preorder(t: ⇒ T[X, X]): T[X, X]

    Definition Classes
    Transformations
  86. def replaceTree(from: nsc.Global.Tree, to: nsc.Global.Tree): T[X, X]

    Definition Classes
    TreeTransformations
  87. val setNoPosition: T[nsc.Global.Tree, nsc.Global.Tree]

    Definition Classes
    TreeTransformations
  88. def shallowDuplicate[T <: nsc.Global.Tree](orig: T): T

    Definition Classes
    TreeTransformations
  89. def succeed[X]: T[X, X]

    Always succeeds and returns the input unchanged.

    Always succeeds and returns the input unchanged.

    Definition Classes
    Transformations
  90. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  91. def toString(): String

    Definition Classes
    AnyRef → Any
  92. def topPackageDef(t: nsc.Global.PackageDef): nsc.Global.PackageDef

    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
    PimpedTrees
  93. def topdown(t: ⇒ T[X, X]): T[X, X]

    Definition Classes
    Transformations
  94. def transform(f: PartialFunction[nsc.Global.Tree, nsc.Global.Tree]): T[nsc.Global.Tree, nsc.Global.Tree]

    Definition Classes
    TreeTransformations
  95. def transformation[X, Y](f: PartialFunction[X, Y]): T[X, Y]

    Construct a transformation from a partial function; this is the most commonly used way to create new transformations, for example like:

    Construct a transformation from a partial function; this is the most commonly used way to create new transformations, for example like:

    val reverse_all_class_members = transformation[Tree, Tree] { case t: Template => t.copy(body = t.body.reverse) }

    Definition Classes
    Transformations
  96. def traverse(tree: nsc.Global.Tree, f: (nsc.Global.Tree) ⇒ nsc.Global.Tree): nsc.Global.Tree

    Definition Classes
    TreeTransformationsTransformations
  97. def traverseAndTransformAll(t: ⇒ T[X, X]): T[X, X]

    Definition Classes
    Transformations
  98. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  101. def (t: ⇒ T[X, X]): T[X, X]

    Applies a transformation bottom-up, that is, it applies the transformation to the children of the tree first and then to their parent.

    Applies a transformation bottom-up, that is, it applies the transformation to the children of the tree first and then to their parent. The consequence is that the parent "sees" its transformed children.

    Definition Classes
    Transformations
  102. def (t: ⇒ T[X, X]): T[X, X]

    Applies a transformation top-down, that is, it applies the transformation to the tree T and then passes the transformed T to all children.

    Applies a transformation top-down, that is, it applies the transformation to the tree T and then passes the transformed T to all children. The consequence is that the children "see" their new parent.

    Definition Classes
    Transformations

Deprecated Value Members

  1. object SourceLayouts

    Definition Classes
    PimpedTrees
    Annotations
    @deprecated
    Deprecated

    (Since version 0.5.0) Use PlainText objects and its components

Inherited from CompilerAccess

Inherited from TreeTransformations

Inherited from Transformations

Inherited from PimpedTrees

Inherited from TreeFactory

Inherited from AnyRef

Inherited from Any

Ungrouped