summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/scala/chisel3/internal/Builder.scala8
-rw-r--r--src/test/scala/chiselTests/ImplicitConversionsSpec.scala7
2 files changed, 13 insertions, 2 deletions
diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala
index 7e521812..bacc9fee 100644
--- a/core/src/main/scala/chisel3/internal/Builder.scala
+++ b/core/src/main/scala/chisel3/internal/Builder.scala
@@ -387,7 +387,13 @@ private[chisel3] object Builder {
}
def errors: ErrorLog = dynamicContext.errors
- def error(m: => String): Unit = if (dynamicContextVar.value.isDefined) errors.error(m)
+ def error(m: => String): Unit = {
+ if (dynamicContextVar.value.isDefined) {
+ errors.error(m)
+ } else {
+ throwException(m)
+ }
+ }
def warning(m: => String): Unit = if (dynamicContextVar.value.isDefined) errors.warning(m)
def deprecated(m: => String, location: Option[String] = None): Unit =
if (dynamicContextVar.value.isDefined) errors.deprecated(m, location)
diff --git a/src/test/scala/chiselTests/ImplicitConversionsSpec.scala b/src/test/scala/chiselTests/ImplicitConversionsSpec.scala
index d5939b24..bde43717 100644
--- a/src/test/scala/chiselTests/ImplicitConversionsSpec.scala
+++ b/src/test/scala/chiselTests/ImplicitConversionsSpec.scala
@@ -39,5 +39,10 @@ class ImplicitConversionsSpec extends ChiselFlatSpec {
import chisel3.util._
assertTypeError("Decoupled(UInt(8.W)).target")
}
-}
+ "X.B for X not in [0,1]" should "throw an exception, even outside hardware context" in {
+ a [ChiselException] should be thrownBy {
+ 65.B
+ }
+ }
+}