@@ -637,68 +637,38 @@ object Symbols {
637
637
@ sharable var stubs : List [Symbol ] = Nil // diagnostic only
638
638
639
639
/* Mutable map from symbols any T */
640
- class MutableSymbolMap [T ](private [Symbols ] val value : java.util. IdentityHashMap [Symbol , T ]) extends AnyVal {
640
+ class MutableSymbolMap [T ](private [Symbols ] val value : mutable. AnyRefMap [Symbol , T ]) extends AnyVal {
641
641
642
- def apply (sym : Symbol ): T = value.get (sym)
642
+ def apply (sym : Symbol ): T = value(sym)
643
643
644
- def get (sym : Symbol ): Option [T ] = Option ( value.get(sym) )
644
+ def get (sym : Symbol ): Option [T ] = value.get(sym)
645
645
646
- def getOrElse [U >: T ](sym : Symbol , default : => U ): U = {
647
- val v = value.get(sym)
648
- if (v != null ) v else default
649
- }
646
+ def getOrElse [U >: T ](sym : Symbol , default : => U ): U = value.getOrElse(sym, default)
650
647
651
- def getOrElseUpdate (sym : Symbol , op : => T ): T = {
652
- val v = value.get(sym)
653
- if (v != null ) v
654
- else {
655
- val v = op
656
- assert(v != null )
657
- value.put(sym, v)
658
- v
659
- }
660
- }
648
+ def getOrElseUpdate (sym : Symbol , op : => T ): T = value.getOrElseUpdate(sym, op)
661
649
662
- def update (sym : Symbol , x : T ): Unit = {
663
- assert(x != null )
664
- value.put(sym, x)
665
- }
666
- def put (sym : Symbol , x : T ): T = {
667
- assert(x != null )
668
- value.put(sym, x)
669
- }
650
+ def update (sym : Symbol , x : T ): Unit = value.update(sym, x)
670
651
671
652
def -= (sym : Symbol ): Unit = value.remove(sym)
672
- def remove (sym : Symbol ): Option [T ] = Option ( value.remove(sym) )
653
+ def remove (sym : Symbol ): Option [T ] = value.remove(sym)
673
654
674
- def contains (sym : Symbol ): Boolean = value.containsKey (sym)
655
+ def contains (sym : Symbol ): Boolean = value.contains (sym)
675
656
676
657
def isEmpty : Boolean = value.isEmpty
677
658
678
659
def clear (): Unit = value.clear()
679
660
680
- def filter (p : ((Symbol , T )) => Boolean ): Map [Symbol , T ] = {
681
- import scala .collection .JavaConversions ._
682
- value.toMap.filter(p)
683
- }
661
+ def filter (p : ((Symbol , T )) => Boolean ): Map [Symbol , T ] = value.iterator.filter(p).toMap
684
662
685
- def iterator : Iterator [(Symbol , T )] = {
686
- import scala .collection .JavaConversions ._
687
- value.iterator
688
- }
663
+ def iterator : Iterator [(Symbol , T )] = value.iterator
689
664
690
- def keysIterator : Iterator [Symbol ] = {
691
- import scala .collection .JavaConversions ._
692
- value.keySet().iterator
693
- }
665
+ def keysIterator : Iterator [Symbol ] = value.keysIterator
666
+
667
+ def toMap : Map [Symbol , T ] = value.toMap
694
668
695
- def toMap : Map [Symbol , T ] = {
696
- import scala .collection .JavaConversions ._
697
- value.toMap
698
- }
699
669
}
700
670
701
671
@ inline def newMutableSymbolMap [T ]: MutableSymbolMap [T ] =
702
- new MutableSymbolMap (new java.util. IdentityHashMap [Symbol , T ]())
672
+ new MutableSymbolMap (new mutable. AnyRefMap [Symbol , T ]())
703
673
704
674
}
0 commit comments