summaryrefslogtreecommitdiff
path: root/chiselFrontend/src/main/scala/chisel3/core/Data.scala
diff options
context:
space:
mode:
authorAlbert Magyar2017-11-22 17:51:51 -0800
committerRichard Lin2018-01-02 13:41:32 -0800
commit11c1112661e04094bccfd805e737e0318eb91ebc (patch)
tree185ea171a05d289ea8ff2ed1525b40f14c50a3bb /chiselFrontend/src/main/scala/chisel3/core/Data.scala
parent7c3c18de2ffd56af51b99030c7ae7d3a321aed5f (diff)
Add auto clone implementation for inner Bundles (#722)
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/Data.scala')
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Data.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Data.scala b/chiselFrontend/src/main/scala/chisel3/core/Data.scala
index 19adf01b..d84a86e9 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Data.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Data.scala
@@ -208,6 +208,13 @@ abstract class Data extends HasId {
}
}
+ // If this Data is an instance of an inner class, record enclosing class
+ // This is only used for cloneType!
+ private[core] var outerModule: Option[BaseModule] =
+ (Option(this.getClass.getEnclosingClass) zip Builder.currentModule)
+ .find({ case (c, m) => c.isAssignableFrom(m.getClass) })
+ .map({ case (_, m) => m })
+
// User-specified direction, local at this node only.
// Note that the actual direction of this node can differ from child and parent specifiedDirection.
private var _specifiedDirection: SpecifiedDirection = SpecifiedDirection.Unspecified