Decreases metalevel of the type, i.
Decreases metalevel of the type, i.e. transforms: * c.Expr[T] to T * Anything else to Any
Metalevels.scala for more information and examples about metalevels
Increases metalevel of the type, i.
Increases metalevel of the type, i.e. transforms: * T to c.Expr[T]
Metalevels.scala for more information and examples about metalevels
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.