blob: 0dfa8d1654e7b9a3bc349d0da228389bc2026ec0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package scala.reflect.makro
package internal
/** Links macro definitions with their implementation.
* This is necessary to preserve macro def -> macro impl links between compilation runs.
*
* More precisely, after typechecking right-hand side of a macro def
* `typedMacroBody` slaps `macroImpl` annotation onto the macro def
* with the result of typechecking as a sole parameter.
*
* As an unfortunate consequence, this annotation must be defined in scala-library.jar,
* because anyone (even those programmers who compile their programs with only scala-library on classpath)
* must be able to define macros.
*
* To lessen the weirdness we define this annotation as `private[scala]`.
* It will not prevent pickling, but it will prevent application developers (and scaladocs) from seeing the annotation.
*/
private[scala] class macroImpl(val referenceToMacroImpl: Any) extends annotation.StaticAnnotation
|