summaryrefslogtreecommitdiff
path: root/coreMacros/src/main/scala/chisel3
diff options
context:
space:
mode:
authorRichard Lin2019-03-25 23:49:14 -0700
committerGitHub2019-03-25 23:49:14 -0700
commit50bbf973b4d631e14bd3cf40fa9dfe39a5c3d2e4 (patch)
treed08b04849dbbb31fdf8b9a80983ae0ee87265f25 /coreMacros/src/main/scala/chisel3
parent1f8a5862c9b1642757af9f2dc0a34532c0a342a6 (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.scala15
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)
}
"""
}