diff options
| author | Richard Lin | 2019-03-25 23:49:14 -0700 |
|---|---|---|
| committer | GitHub | 2019-03-25 23:49:14 -0700 |
| commit | 50bbf973b4d631e14bd3cf40fa9dfe39a5c3d2e4 (patch) | |
| tree | d08b04849dbbb31fdf8b9a80983ae0ee87265f25 /coreMacros/src/main/scala/chisel3 | |
| parent | 1f8a5862c9b1642757af9f2dc0a34532c0a342a6 (diff) | |
Allow naming annotation to work outside builder context (#1051)
Diffstat (limited to 'coreMacros/src/main/scala/chisel3')
| -rw-r--r-- | coreMacros/src/main/scala/chisel3/internal/sourceinfo/NamingAnnotations.scala | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/coreMacros/src/main/scala/chisel3/internal/sourceinfo/NamingAnnotations.scala b/coreMacros/src/main/scala/chisel3/internal/sourceinfo/NamingAnnotations.scala index fba526af..a1b279c7 100644 --- a/coreMacros/src/main/scala/chisel3/internal/sourceinfo/NamingAnnotations.scala +++ b/coreMacros/src/main/scala/chisel3/internal/sourceinfo/NamingAnnotations.scala @@ -51,9 +51,8 @@ class DebugTransforms(val c: Context) { object NamingTransforms class NamingTransforms(val c: Context) { import c.universe._ - import Flag._ - val globalNamingStack = q"_root_.chisel3.internal.DynamicNamingStack()" + val globalNamingStack = q"_root_.chisel3.internal.DynamicNamingStack" /** Base transformer that provides the val name transform. * Should not be instantiated, since by default this will recurse everywhere and break the @@ -107,7 +106,7 @@ class NamingTransforms(val c: Context) { class MethodTransformer(val contextVar: TermName) extends ValNameTransformer { override def transform(tree: Tree): Tree = tree match { // TODO: better error messages when returning nothing - case q"return $expr" => q"return $globalNamingStack.pop_return_context($expr, $contextVar)" + case q"return $expr" => q"return $globalNamingStack.popReturnContext($expr, $contextVar)" // Do not recurse into methods case q"$mods def $tname[..$tparams](...$paramss): $tpt = $expr" => tree case other => super.transform(other) @@ -122,10 +121,10 @@ class NamingTransforms(val c: Context) { val transformedBody = (new ModuleTransformer(contextVar)).transformTrees(stats) q""" - val $contextVar = $globalNamingStack.push_context() + val $contextVar = $globalNamingStack.pushContext() ..$transformedBody - $contextVar.name_prefix("") - $globalNamingStack.pop_context($contextVar) + $contextVar.namePrefix("") + $globalNamingStack.popReturnContext((), $contextVar) """ } @@ -137,8 +136,8 @@ class NamingTransforms(val c: Context) { val transformedBody = (new MethodTransformer(contextVar)).transform(expr) q"""{ - val $contextVar = $globalNamingStack.push_context() - $globalNamingStack.pop_return_context($transformedBody, $contextVar) + val $contextVar = $globalNamingStack.pushContext() + $globalNamingStack.popReturnContext($transformedBody, $contextVar) } """ } |
