From 3b206b5054bc36706f295b3f48f170da8775031f Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Thu, 30 Jul 2020 14:57:18 -0700 Subject: Broken auto-clonetype on Scala 2.11.12 (#1480) * Added broken auto-clonetype test * Added bugfix for 2.11 * Add descriptive comment for 2.11 special case * Update src/test/scala/chiselTests/AutoClonetypeSpec.scala * Update src/test/scala/chiselTests/AutoClonetypeSpec.scala Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>--- src/test/scala/chiselTests/AutoClonetypeSpec.scala | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/test') diff --git a/src/test/scala/chiselTests/AutoClonetypeSpec.scala b/src/test/scala/chiselTests/AutoClonetypeSpec.scala index 88f6378b..d5607dc1 100644 --- a/src/test/scala/chiselTests/AutoClonetypeSpec.scala +++ b/src/test/scala/chiselTests/AutoClonetypeSpec.scala @@ -196,4 +196,26 @@ class AutoClonetypeSpec extends ChiselFlatSpec with Utils { } } } } + + "Wrapped IO construction without parent reference" should "not fail for autoclonetype" in { + class TestModule extends MultiIOModule { + def thunk[T](f: => T): T = f + val works = thunk(IO(new Bundle { + val x = Output(UInt(3.W)) + })) + } + ChiselStage.elaborate { new TestModule } + } + + "Wrapped IO construction with parent references" should "not fail for autoclonetype" in { + class TestModule(blah: Int) extends MultiIOModule { + // Note that this currently fails only if f: =>T on Scala 2.11.12 + // This works successfully with 2.12.11 + def thunk[T](f: => T): T = f + val broken = thunk(IO(new Bundle { + val x = Output(UInt(blah.W)) + })) + } + ChiselStage.elaborate { new TestModule(3) } + } } -- cgit v1.2.3