Skip to content

Commit 93dd1cf

Browse files
committed
Merge pull request #1022 from dotty-staging/fix-i939
Fix #939. Allows IntMap and LongMap to compile
2 parents e9105c9 + 150d629 commit 93dd1cf

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/dotty/tools/dotc/transform/PatternMatcher.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,8 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
787787
// - Scala's arrays are invariant (so we don't drop type tests unsoundly)
788788
if (extractorArgTypeTest) mkDefault
789789
else expectedTp match {
790-
case ThisType(tref) if tref.symbol.flags is Flags.Module => and(mkEqualsTest(ref(tref.symbol)), mkTypeTest) // must use == to support e.g. List() == Nil
790+
case ThisType(tref) if tref.symbol.flags is Flags.Module =>
791+
and(mkEqualsTest(ref(tref.symbol.companionModule)), mkTypeTest) // must use == to support e.g. List() == Nil
791792
case ConstantType(Constant(null)) if isAnyRef => mkEqTest(expTp(Literal(Constant(null))))
792793
case ConstantType(const) => mkEqualsTest(expTp(Literal(const)))
793794
case t:SingletonType => mkEqTest(singleton(expectedTp)) // SI-4577, SI-4897

test/dotc/scala-collections.whitelist

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,13 +189,11 @@
189189
./scala-scala/src/library/scala/collection/immutable/HashMap.scala
190190
./scala-scala/src/library/scala/collection/immutable/HashSet.scala
191191

192-
# https://github.com/lampepfl/dotty/issues/939 -> @darkdimius
193-
#./scala-scala/src/library/scala/collection/immutable/IntMap.scala
192+
193+
./scala-scala/src/library/scala/collection/immutable/IntMap.scala
194194
./scala-scala/src/library/scala/collection/immutable/ListMap.scala
195195
./scala-scala/src/library/scala/collection/immutable/ListSet.scala
196-
197-
# https://github.com/lampepfl/dotty/issues/939 -> @darkdimius
198-
#./scala-scala/src/library/scala/collection/immutable/LongMap.scala
196+
./scala-scala/src/library/scala/collection/immutable/LongMap.scala
199197

200198
./scala-scala/src/library/scala/collection/immutable/Map.scala
201199
./scala-scala/src/library/scala/collection/immutable/MapLike.scala

tests/pos/i939.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
object IntMap {
2+
private case object Nil {
3+
override def equals(that : Any) = that match {
4+
case _: this.type => true
5+
case _ => super.equals(that)
6+
}
7+
}
8+
}

0 commit comments

Comments
 (0)