summaryrefslogtreecommitdiff
path: root/chiselFrontend/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'chiselFrontend/src/main')
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala b/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
index e45f6d72..6a2e68e0 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
@@ -702,7 +702,11 @@ class Bundle(implicit compileOptions: CompileOptions) extends Record {
" Use chisel types instead: use the value before it is turned to a hardware type (with Wire(...), Reg(...), etc) or use chiselTypeOf(...) to extract the chisel type.")
}
- val ctorParamsVals = ctorParamsNameVals.map{ case (_, paramVal) => paramVal }
+ // Clone unbound parameters in case they are being used as bundle fields.
+ val ctorParamsVals = ctorParamsNameVals.map {
+ case (_, paramVal: Data) => paramVal.cloneTypeFull
+ case (_, paramVal) => paramVal
+ }
// Invoke ctor
val classMirror = outerClassInstance match {