scala.tools.nsc.ast

TreeGen

abstract class TreeGen extends AnyRef

XXX to resolve: TreeGen only assumes global is a SymbolTable, but TreeDSL at the moment expects a Global. Can we get by with SymbolTable?

Source
TreeGen.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. TreeGen
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TreeGen()

Abstract Value Members

  1. abstract val global: SymbolTable

Concrete Value Members

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

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

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

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

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

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. def convertToSelectFromType(qual: Tree, origName: Name): Tree with Serializable

    Try to convert Select(qual, name) to a SelectFromTypeTree.

  9. def convertToTypeName(tree: Tree): Option[RefTree]

    Translate names in Select/Ident nodes to type names.

  10. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  12. def evalOnce(expr: Tree, owner: Symbol, unit: CompilationUnit)(within: (() ⇒ Tree) ⇒ Tree): Tree

    Used in situations where you need to access value of an expression several times

  13. def evalOnceAll(exprs: List[Tree], owner: Symbol, unit: CompilationUnit)(within: (List[() ⇒ Tree]) ⇒ Tree): Tree

  14. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. final def getClass(): java.lang.Class[_]

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

    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  18. def maybeMkAsInstanceOf(tree: Tree, pt: Type, tpe: Type, beforeRefChecks: Boolean = false): Tree

    Cast tree' to 'pt', unless tpe is a subtype of pt, or pt is Unit.

  19. def mkAnd(tree1: Tree, tree2: Tree): Tree

  20. def mkAsInstanceOf(value: Tree, tpe: Type, any: Boolean = true): Tree

    Builds a cast with given value and type.

  21. def mkAssignAndReturn(lhs: Symbol, rhs: Tree): Tree

  22. def mkAttributedIdent(sym: Symbol): Tree

  23. def mkAttributedQualifier(tpe: Type, termSym: Symbol): Tree

    Builds a reference to value whose type is given stable prefix.

    Builds a reference to value whose type is given stable prefix. If the type is unsuitable, e.g. it is a TypeRef for an abstract type variable, then an Ident will be made using termSym as the Ident's symbol. In that case, termSym must not be NoSymbol.

  24. def mkAttributedQualifier(tpe: Type): Tree

    Builds a reference to value whose type is given stable prefix.

    Builds a reference to value whose type is given stable prefix. The type must be suitable for this. For example, it must not be a TypeRef pointing to an abstract type variable.

  25. def mkAttributedRef(sym: Symbol): Tree

    Builds a reference to given symbol.

  26. def mkAttributedRef(pre: Type, sym: Symbol): Tree

    Builds a reference to given symbol with given stable prefix.

  27. def mkAttributedSelect(qual: Tree, sym: Symbol): Tree

  28. def mkAttributedStableRef(sym: Symbol): Tree

  29. def mkAttributedStableRef(pre: Type, sym: Symbol): Tree

    Builds a reference with stable type to given symbol

  30. def mkAttributedThis(sym: Symbol): Tree

  31. def mkCached(cvar: Symbol, expr: Tree): Tree

  32. def mkCachedModuleAccessDef(accessor: Symbol, mvar: Symbol): DefDef

  33. def mkCast(tree: Tree, pt: Type): Tree

    Cast tree' to type pt'

  34. def mkCastArray(tree: Tree, elemtp: Type, pt: Type): Tree

    Generate a cast for tree Tree representing Array with elem type elemtp to expected type pt.

  35. def mkCheckInit(tree: Tree): Tree

  36. def mkClassOf(tp: Type): Tree

  37. def mkDoubleCheckedLocking(attrThis: Tree, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree

  38. def mkDoubleCheckedLocking(clazz: Symbol, cond: Tree, syncBody: List[Tree], stats: List[Tree]): Tree

    Return a double-checked locking idiom around the syncBody tree.

    Return a double-checked locking idiom around the syncBody tree. It guards with 'cond' and synchronizez on 'clazz.this'. Additional statements can be included after initialization, (outside the synchronized block).

    The idiom works only if the condition is using a volatile field.

    See also

    http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

  39. def mkForwarder(target: Tree, vparamss: List[List[Symbol]]): Tree

    Make forwarder to method target', passing all parameters in params'

  40. def mkIsInstanceOf(value: Tree, tpe: Type, any: Boolean = true): Tree

    Builds an instance test with given value and type.

  41. def mkModuleAccessDcl(accessor: Symbol): DefDef

  42. def mkModuleAccessDef(accessor: Symbol, msym: Symbol): DefDef

  43. def mkModuleVarDef(accessor: Symbol): ValDef

  44. def mkNewCons(head: Tree, tail: Tree): Tree

    Builds a list with given head and tail.

  45. def mkNil: Tree

    Builds a list with given head and tail.

  46. def mkOr(tree1: Tree, tree2: Tree): Tree

  47. def mkRuntimeCall(meth: Name, targs: List[Type], args: List[Tree]): Tree

  48. def mkRuntimeCall(meth: Name, args: List[Tree]): Tree

  49. def mkSoftRef(expr: Tree): Tree

  50. def mkSynchronized(monitor: Tree, body: Tree): Tree

    Make a synchronized block on 'monitor'.

  51. def mkTuple(elems: List[Tree]): Tree

    Builds a tuple

  52. def mkUnattributedRef(sym: Symbol): Tree

    Builds an untyped reference to given symbol.

  53. def mkWrapArray(tree: Tree, elemtp: Type): Apply

    Applies a wrapArray call to an array, making it a WrappedArray.

    Applies a wrapArray call to an array, making it a WrappedArray. Don't let a reference type parameter be inferred, in case it's a singleton: apply the element type directly.

  54. def mkZero(tp: Type): Tree

    Builds a tree representing an undefined local, as in var x: T = _ which is appropriate to the given Type.

  55. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  56. def newModule(accessor: Symbol, tpe: Type): Tree

  57. final def notify(): Unit

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

    Definition Classes
    AnyRef
  59. def paramToArg(vparam: ValDef): Tree with Serializable

  60. def paramToArg(vparam: Symbol): Tree with Serializable

  61. def productConstr: Select

  62. def rootId(name: Name): Select

  63. def rootScalaDot(name: Name): Select

  64. def scalaAnyRefConstr: Select

  65. def scalaDot(name: Name): Select

  66. def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree, abstractFun: Boolean = false): Tree

  67. def scalaScalaObjectConstr: Select

  68. def scalaUnitConstr: Select

  69. def serializableConstr: Select

  70. def stabilize(tree: Tree): Tree

    Replaces tree type with a stable type if possible

  71. def stableTypeFor(tree: Tree): Option[Type]

    Computes stable type for a tree if possible

  72. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  73. def toString(): String

    Definition Classes
    AnyRef → Any
  74. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()
  77. def wildcardStar(tree: Tree): Typed

Inherited from AnyRef

Inherited from Any