aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin Laeufer2020-07-28 10:02:26 -0700
committerKevin Laeufer2020-07-29 15:26:30 -0700
commite8cf75f10b51557a03462b3720ca3b61cbbb9beb (patch)
tree38627467d3ea9cc53d3f081568a6bab2bfbc2835 /src
parent3486ee55b47b80b2a3828a23ddc6439dc48415c3 (diff)
[2.13] EmissionOptionMap now uses a HashMap instead of extending it
Extending HashMap is discouraged.
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/Emitter.scala16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala
index da1cb83e..2788173a 100644
--- a/src/main/scala/firrtl/Emitter.scala
+++ b/src/main/scala/firrtl/Emitter.scala
@@ -470,13 +470,15 @@ class VerilogEmitter extends SeqTransform with Emitter {
* Store Emission option per Target
* Guarantee only one emission option per Target
*/
- private[firrtl] class EmissionOptionMap[V <: EmissionOption](val df : V) extends collection.mutable.HashMap[ReferenceTarget, V] {
- override def default(key: ReferenceTarget) = df
- override def +=(elem : (ReferenceTarget, V)) : EmissionOptionMap.this.type = {
- if (this.contains(elem._1))
- throw EmitterException(s"Multiple EmissionOption for the target ${elem._1} (${this(elem._1)} ; ${elem._2})")
- super.+=(elem)
- }
+ private[firrtl] class EmissionOptionMap[V <: EmissionOption](val df : V) {
+ private val m = collection.mutable.HashMap[ReferenceTarget, V]().withDefaultValue(df)
+ def +=(elem : (ReferenceTarget, V)) : EmissionOptionMap.this.type = {
+ if (m.contains(elem._1))
+ throw EmitterException(s"Multiple EmissionOption for the target ${elem._1} (${m(elem._1)} ; ${elem._2})")
+ m += (elem)
+ this
+ }
+ def apply(key: ReferenceTarget): V = m.apply(key)
}
/** Provide API to retrieve EmissionOptions based on the provided [[AnnotationSeq]]