abstract class DefaultMacroCompiler extends Resolvers with Validators with Errors
- Alphabetic
- By Inheritance
- DefaultMacroCompiler
- Errors
- Traces
- Validators
- Resolvers
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new DefaultMacroCompiler()
Type Members
- case class MacroImplRefCompiler(untypedMacroImplRef: tools.nsc.Global.Tree, isImplBundle: Boolean) extends Resolver with Validator with Error with Product with Serializable
-
trait
Error extends AnyRef
- Definition Classes
- Errors
-
trait
Resolver extends AnyRef
- Definition Classes
- Resolvers
-
trait
Validator extends AnyRef
- Definition Classes
- Validators
Abstract Value Members
Concrete Value Members
-
def
MacroBundleNonStaticError(): Nothing
- Definition Classes
- Errors
-
def
MacroBundleWrongShapeError(): Nothing
- Definition Classes
- Errors
-
def
MacroImplAmbiguousError(): Nothing
- Definition Classes
- Errors
- def abort(pos: tools.nsc.Global.Position, msg: String): Nothing
- val context: (analyzer)#Context
- def globalSettings: Settings
-
val
macroDebugLite: Boolean
- Definition Classes
- Traces
-
val
macroDebugVerbose: Boolean
- Definition Classes
- Traces
- lazy val macroDef: tools.nsc.Global.Symbol
-
final
def
macroLogLite(msg: ⇒ Any): Unit
- Definition Classes
- Traces
- Annotations
- @inline()
-
final
def
macroLogVerbose(msg: ⇒ Any): Unit
- Definition Classes
- Traces
- Annotations
- @inline()
-
def
resolveMacroImpl: tools.nsc.Global.Tree
Resolves a macro impl reference provided in the right-hand side of the given macro definition.
Resolves a macro impl reference provided in the right-hand side of the given macro definition.
Acceptable shapes of the right-hand side: 1) [<static object>].<method name>args> // vanilla macro impl ref 2) [<macro bundle>].<method name>args> // shiny new macro bundle impl ref
Produces a tree, which represents a reference to a macro implementation if everything goes well, otherwise reports found errors and returns EmptyTree. The resulting tree should have the following format:
qualifier.method[targs]
Qualifier here might be omitted (local macro defs), be a static object (vanilla macro defs) or be a dummy instance of a macro bundle (e.g. new MyMacro(???).expand).
- val runDefinitions: internal.Definitions.definitions.RunDefinitions
The Scala compiler and reflection APIs.