Packages

trait Helpers extends AnyRef

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Helpers
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. def decreaseMetalevel(tp: tools.nsc.Global.Type): tools.nsc.Global.Type

    Decreases metalevel of the type, i.e.

    Decreases metalevel of the type, i.e. transforms: * c.Expr[T] to T * Nothing to Nothing * Anything else to NoType

    See also

    Metalevels.scala for more information and examples about metalevels

  2. def increaseMetalevel(pre: tools.nsc.Global.Type, tp: tools.nsc.Global.Type): tools.nsc.Global.Type

    Increases metalevel of the type, i.e.

    Increases metalevel of the type, i.e. transforms: * T to c.Expr[T]

    See also

    Metalevels.scala for more information and examples about metalevels

  3. def transformTypeTagEvidenceParams(macroImplRef: tools.nsc.Global.Tree, transform: (tools.nsc.Global.Symbol, tools.nsc.Global.Symbol) ⇒ tools.nsc.Global.Symbol): List[List[tools.nsc.Global.Symbol]]

    Transforms parameters lists of a macro impl.

    Transforms parameters lists of a macro impl. The transform function is invoked only for WeakTypeTag evidence parameters.

    The transformer takes two arguments: a value parameter from the parameter list and a type parameter that is witnesses by the value parameter.

    If the transformer returns a NoSymbol, the value parameter is not included from the result. If the transformer returns something else, this something else is included in the result instead of the value parameter.

    Despite of being highly esoteric, this function significantly simplifies signature analysis. For example, it can be used to strip macroImpl.paramss from the evidences (necessary when checking def <-> impl correspondence) or to streamline creation of the list of macro arguments.

  4. def untypeMetalevel(tp: tools.nsc.Global.Type): tools.nsc.Global.Type

    Transforms c.Expr[T] types into c.Tree and leaves the rest unchanged.