@@ -1657,28 +1657,29 @@ final class SearchRoot extends SearchHistory {
1657
1657
1658
1658
/** A set of term references where equality is =:= */
1659
1659
sealed class TermRefSet (using Context ):
1660
- private val elems = new java.util.LinkedHashMap [TermSymbol , List [Type ]]
1660
+ private val elems = new java.util.LinkedHashMap [TermSymbol , Type | List [Type ]]
1661
1661
1662
1662
def isEmpty = elems.size == 0
1663
1663
1664
- def += (ref : TermRef ): Unit = {
1664
+ def += (ref : TermRef ): Unit =
1665
1665
val pre = ref.prefix
1666
1666
val sym = ref.symbol.asTerm
1667
- elems.get(sym) match {
1667
+ elems.get(sym) match
1668
1668
case null =>
1669
- elems.put(sym, pre :: Nil )
1670
- case prefixes =>
1671
- if (! prefixes.exists(_ =:= pre))
1672
- elems.put(sym, pre :: prefixes)
1673
- }
1674
- }
1669
+ elems.put(sym, pre)
1670
+ case prefix : Type =>
1671
+ if ! (prefix =:= pre) then elems.put(sym, pre :: prefix :: Nil )
1672
+ case prefixes : List [Type ] =>
1673
+ if ! prefixes.exists(_ =:= pre) then elems.put(sym, pre :: prefixes)
1675
1674
1676
1675
def ++= (that : TermRefSet ): Unit =
1677
1676
that.foreach(+= )
1678
1677
1679
1678
def foreach [U ](f : TermRef => U ): Unit =
1680
- elems.forEach((sym : TermSymbol , prefixes : List [Type ]) =>
1681
- prefixes.foreach(pre => f(TermRef (pre, sym))))
1679
+ elems.forEach((sym : TermSymbol , prefixes : Type | List [Type ]) =>
1680
+ prefixes match
1681
+ case prefix : Type => f(TermRef (prefix, sym))
1682
+ case prefixes : List [Type ] => prefixes.foreach(pre => f(TermRef (pre, sym))))
1682
1683
1683
1684
// used only for debugging
1684
1685
def toList : List [TermRef ] = {
0 commit comments