Skip to content

Commit c12dd76

Browse files
retronymadriaanm
authored andcommitted
Unit test for recent bug fix in LUBs
1 parent a91c81f commit c12dd76

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

test/junit/scala/reflect/internal/TypesTest.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,15 @@ class TypesTest {
128128
// calling `apply` merges the prefix/args of the elements ot the RefinedType and rewraps in the existential
129129
assertEquals("M[_1] forSome { type X; type _1 >: X with Int }", T.baseTypeSeq.apply(1).toString)
130130
}
131+
132+
@Test
133+
def testExistentialMerge(): Unit = {
134+
val ts = typeOf[Set[Any]] :: typeOf[Set[X] forSome { type X <: Y; type Y <: Int}] :: Nil
135+
def merge(ts: List[Type]) = mergePrefixAndArgs(ts, Variance.Contravariant, lubDepth(ts))
136+
val merged1 = merge(ts)
137+
val merged2 = merge(ts.reverse)
138+
assert(ts.forall(_ <:< merged1)) // use to fail before fix to mergePrefixAndArgs for existentials
139+
assert(ts.forall(_ <:< merged2))
140+
assert(merged1 =:= merged2)
141+
}
131142
}

0 commit comments

Comments
 (0)