summaryrefslogtreecommitdiff
path: root/core/src/main/scala/chisel3/internal/Warning.scala
diff options
context:
space:
mode:
authorAditya Naik2024-08-06 05:35:30 -0700
committerAditya Naik2024-08-06 05:35:30 -0700
commit51864db8176662d134e1a260f92eafc83f9933d8 (patch)
treea92572eb64033060304df5ab9ebec0047e97dbbb /core/src/main/scala/chisel3/internal/Warning.scala
parentcf31062758d4d9722ac30f89fdfe7cc7c1d8cc74 (diff)
Update ChiselEnum.scala
And more changes
Diffstat (limited to 'core/src/main/scala/chisel3/internal/Warning.scala')
-rw-r--r--core/src/main/scala/chisel3/internal/Warning.scala36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/src/main/scala/chisel3/internal/Warning.scala b/core/src/main/scala/chisel3/internal/Warning.scala
new file mode 100644
index 00000000..5ac506c9
--- /dev/null
+++ b/core/src/main/scala/chisel3/internal/Warning.scala
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package chisel3.internal
+
+///////////////////////////////////////////////////
+// Never remove IDs and only ever add to the end //
+///////////////////////////////////////////////////
+
+// TODO should deprecations be included here?
+private[chisel3] object WarningID extends Enumeration {
+ type WarningID = Value
+
+ val NoID = Value(0) // Reserved
+ val UnsafeUIntCastToEnum = Value(1)
+ val DynamicBitSelectTooWide = Value(2)
+ val DynamicBitSelectTooNarrow = Value(3)
+ val DynamicIndexTooWide = Value(4)
+ val DynamicIndexTooNarrow = Value(5)
+ val ExtractFromVecSizeZero = Value(6)
+ val BundleLiteralValueTooWide = Value(7)
+ val AsTypeOfReadOnly = Value(8)
+}
+import WarningID.WarningID
+
+// Argument order differs from apply below to avoid type signature collision with apply method below
+private[chisel3] case class Warning(id: WarningID, msg: String)
+private[chisel3] object Warning {
+ def apply(id: WarningID, msg: String): Warning = {
+ val num = f"[W${id.id}%03d] "
+ new Warning(info, id, num + msg)
+ }
+ def noInfo(id: WarningID, msg: String): Warning = {
+ implicit val info = SourceInfo.materializeFromStacktrace
+ Warning(id, msg)
+ }
+}