aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/passes/Checks.scala1
-rw-r--r--src/test/scala/firrtlTests/UnitTests.scala21
2 files changed, 22 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/passes/Checks.scala b/src/main/scala/firrtl/passes/Checks.scala
index 8eebda2f..2f3f6204 100644
--- a/src/main/scala/firrtl/passes/Checks.scala
+++ b/src/main/scala/firrtl/passes/Checks.scala
@@ -428,6 +428,7 @@ object CheckTypes extends Pass {
)
case (t1: VectorType, t2: VectorType) =>
bulk_equals(t1.tpe, t2.tpe, flip1, flip2)
+ case (t1, t2) => false
}
}
diff --git a/src/test/scala/firrtlTests/UnitTests.scala b/src/test/scala/firrtlTests/UnitTests.scala
index 7feb4a00..245c32e8 100644
--- a/src/test/scala/firrtlTests/UnitTests.scala
+++ b/src/test/scala/firrtlTests/UnitTests.scala
@@ -290,4 +290,25 @@ class UnitTests extends FirrtlFlatSpec {
}
}
}
+
+ "Partial connecting incompatable types" should "throw an exception" in {
+ val passes = Seq(
+ ToWorkingIR,
+ ResolveKinds,
+ InferTypes,
+ CheckTypes)
+ val input =
+ """circuit Unit :
+ | module Unit :
+ | input foo : { bar : UInt<32> }
+ | output bar : UInt<32>
+ | bar <- foo
+ |""".stripMargin
+ intercept[PassException] {
+ passes.foldLeft(Parser.parse(input.split("\n").toIterator)) {
+ (c: Circuit, p: Pass) => p.run(c)
+ }
+ }
+
+ }
}