summaryrefslogtreecommitdiff
path: root/core/src/main/scala/chisel3/Element.scala
diff options
context:
space:
mode:
authorJack2022-04-26 02:53:08 +0000
committerJack2022-04-26 02:53:08 +0000
commit3a6cc75d72cbf890bbd45a002c31d16abfc6896d (patch)
tree298a39cbdbcd7e89953d75dbd840884f29ff7699 /core/src/main/scala/chisel3/Element.scala
parentbe1ac06bf20c6c3d84c8ce5b0a50e2980e546e7e (diff)
parentd5a964f6e7beea1f38f9623224fc65e2397e1fe7 (diff)
Merge branch '3.5.x' into 3.5-release
Diffstat (limited to 'core/src/main/scala/chisel3/Element.scala')
-rw-r--r--core/src/main/scala/chisel3/Element.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/src/main/scala/chisel3/Element.scala b/core/src/main/scala/chisel3/Element.scala
index 401f2bdf..39b7689c 100644
--- a/core/src/main/scala/chisel3/Element.scala
+++ b/core/src/main/scala/chisel3/Element.scala
@@ -36,10 +36,15 @@ abstract class Element extends Data {
case Some(litArg) => Some(ElementLitBinding(litArg))
case _ => Some(DontCareBinding())
}
- case Some(b @ AggregateViewBinding(viewMap, _)) =>
+ // TODO Do we even need this? Looking up things in the AggregateViewBinding is fine
+ case Some(b @ AggregateViewBinding(viewMap)) =>
viewMap.get(this) match {
- case Some(elt) => Some(ViewBinding(elt))
- case _ => throwException(s"Internal Error! $this missing from topBinding $b")
+ case Some(elt: Element) => Some(ViewBinding(elt))
+ // TODO We could generate a reduced AggregateViewBinding, but is there a point?
+ // Generating the new object would be somewhat slow, it's not clear if we should do this
+ // matching anyway
+ case Some(data: Aggregate) => Some(b)
+ case _ => throwException(s"Internal Error! $this missing from topBinding $b")
}
case topBindingOpt => topBindingOpt
}