Common super-trait for macro- and runtime-compilation.
Bindings (values, variables and parameters).
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros and runtime reflection APIs, e.g.
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros APIs, e.g.
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros APIs, e.g. non- idempotent type checking, lack of hygiene, capture-avoiding substitution, fully-qualified names, fresh name generation, identifying closures, etc.
Loops (while and do-while).
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros APIs, e.g.
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros APIs, e.g. non- idempotent type checking, lack of hygiene, capture-avoiding substitution, fully-qualified names, fresh name generation, identifying closures, etc.
Methods (defs).
(method / lambda) Parameters.
Patterns (for pattern matching).
Utility for traversing and transforming trees.
Values (vals).
Variables (vars).
Implements various utility functions that mitigate and/or workaround deficiencies in Scala's macros and runtime reflection APIs, e.g. non-idempotent type checking, lack of hygiene, capture-avoiding substitution, fully-qualified names, fresh name generation, identifying closures, etc.
This trait has to be instantiated with a scala.reflect.api.Universe type and works for both runtime and compile time reflection.