diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala index 9cf6f402961..0c819554de7 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala @@ -67,15 +67,8 @@ final case class Instance[+A] private[chisel3] (private[chisel3] val underlying: } /** Returns the definition of this Instance */ - override def toDefinition: Definition[A] = { - val result = new Definition(Proto(proto)) - // Because we are creating a new Definition, we should update our Builder.definitions - if (Builder.inContext && !Builder.definitions.view.map(_.proto).contains(result.proto)) { - Builder.definitions += result - } - result - } - override def toInstance: Instance[A] = this + override def toDefinition: Definition[A] = new Definition(Proto(proto)) + override def toInstance: Instance[A] = this private[chisel3] def copy[T](underlying: Underlying[T]) = new Instance(underlying) } diff --git a/src/test/scala-2/chiselTests/experimental/hierarchy/DefinitionSpec.scala b/src/test/scala-2/chiselTests/experimental/hierarchy/DefinitionSpec.scala index fec7e2db6a3..06d6fa55b06 100644 --- a/src/test/scala-2/chiselTests/experimental/hierarchy/DefinitionSpec.scala +++ b/src/test/scala-2/chiselTests/experimental/hierarchy/DefinitionSpec.scala @@ -945,59 +945,4 @@ class DefinitionSpec extends AnyFunSpec with Matchers with FileCheck { ) } } - describe("(9): Calling .toDefinition should update Builder.definitions") { - it("(9.a): calling .toDefinition from another definition's child Instance should work as expected") { - class Bar extends RawModule { - val a = WireInit(false.B) - } - @instantiable - class Foo extends RawModule { - @public val bar = Module(new Bar) - } - class Baz(d: Definition[Foo]) extends RawModule { - val bar = Instance(d.bar.toDefinition) - } - ChiselStage - .emitCHIRRTL( - { - val d = Definition(new Foo) - new Baz(d) - }, - Array("--full-stacktrace") - ) - .fileCheck()( - """|CHECK: module Bar : - |CHECK: module Baz : - |""".stripMargin - ) - } - it("(9.b): calling .toDefinition twice from anther definition's child Instance should work as expected") { - class Bar extends RawModule { - val a = WireInit(false.B) - } - @instantiable - class Foo extends RawModule { - @public val bar = Module(new Bar) - } - class Baz(d: Definition[Foo]) extends RawModule { - val bar = Instance(d.bar.toDefinition) - val bar2 = Instance(d.bar.toDefinition) - } - val x = ChiselStage - .emitCHIRRTL( - { - val d = Definition(new Foo) - new Baz(d) - }, - Array("--full-stacktrace") - ) - .fileCheck()( - """|CHECK: module Bar : - |CHECK-NOT: module Bar_ - |CHECK: module Baz : - |""".stripMargin - ) - } - } - }