diff options
| author | Richard Lin | 2017-01-25 21:02:04 -0800 |
|---|---|---|
| committer | Jack Koenig | 2017-01-25 21:02:04 -0800 |
| commit | fa395b4c22f75d66047c1e835413beb612bc31d3 (patch) | |
| tree | ffe080afef6e77126ad80e4a11340383cff55b2e /src/main/scala/chisel3/package.scala | |
| parent | 2e6444cc55b54b59f781a14823e219d9a2413f72 (diff) | |
Better name propagation by macros (#327)
* Name propagation
* chiselName everywhere at best-effort level
* Better collision handling
* Allow recursing into inner anonymous functions
* Add for loop and anonymous inner function tests
Diffstat (limited to 'src/main/scala/chisel3/package.scala')
| -rw-r--r-- | src/main/scala/chisel3/package.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/package.scala b/src/main/scala/chisel3/package.scala index cba8dffe..109bd14e 100644 --- a/src/main/scala/chisel3/package.scala +++ b/src/main/scala/chisel3/package.scala @@ -285,5 +285,22 @@ package object chisel3 { // scalastyle:ignore package.object.name */ def range(args: Any*): (NumericBound[Int], NumericBound[Int]) = macro chisel3.internal.RangeTransform.apply } + + import scala.language.experimental.macros + import scala.annotation.StaticAnnotation + import scala.annotation.compileTimeOnly + + @compileTimeOnly("enable macro paradise to expand macro annotations") + class dump extends StaticAnnotation { + def macroTransform(annottees: Any*): Any = macro chisel3.internal.naming.DebugTransforms.dump + } + @compileTimeOnly("enable macro paradise to expand macro annotations") + class treedump extends StaticAnnotation { + def macroTransform(annottees: Any*): Any = macro chisel3.internal.naming.DebugTransforms.treedump + } + @compileTimeOnly("enable macro paradise to expand macro annotations") + class chiselName extends StaticAnnotation { + def macroTransform(annottees: Any*): Any = macro chisel3.internal.naming.NamingTransforms.chiselName + } } } |
