From e8cf75f10b51557a03462b3720ca3b61cbbb9beb Mon Sep 17 00:00:00 2001 From: Kevin Laeufer Date: Tue, 28 Jul 2020 10:02:26 -0700 Subject: [2.13] EmissionOptionMap now uses a HashMap instead of extending it Extending HashMap is discouraged. --- src/main/scala/firrtl/Emitter.scala | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src') 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]] -- cgit v1.2.3