Skip to content

Commit 273d9e0

Browse files
Minimize test case more
1 parent 946401c commit 273d9e0

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

tests/pos/i20053.scala

+11-17
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,26 @@ val zzz = x ^^^ x ^^^ x
4242

4343

4444
object Minimized:
45-
trait DFVal[+T <: Int, +P]
4645

47-
trait Summon[R, T <: R]
48-
given [R, T <: R]: Summon[R, T] with {}
46+
trait Sub[T, R >: T]
47+
given [T, R >: T]: Sub[T, R] with {}
4948

50-
trait Candidate[R]:
51-
type OutW <: Int
49+
trait Candidate[-R]:
5250
type OutP
53-
given [W <: Int, P, R <: DFVal[W, P]]: Candidate[R] with
54-
type OutW = W
51+
given [P]: Candidate[Option[P]] with
5552
type OutP = P
5653

57-
extension [L <: DFVal[Int, Any]](lhs: L)(using icL: Candidate[L])
58-
def ^^^[R](rhs: R)
59-
(using icR: Candidate[R])
60-
: DFVal[icL.OutW, icL.OutP | icR.OutP] = ???
54+
extension [L <: Option[Any]](lhs: L)(using icL: Candidate[L])
55+
def ^^^[R](rhs: R)(using icR: Candidate[R]): Option[icL.OutP | icR.OutP] = ???
6156
def ^^^ : Unit = ???
6257

6358
extension [L](lhs: L)
64-
def ^^^[RW <: Int, RP](rhs: DFVal[RW, RP])
65-
(using es: Summon[L, lhs.type])
66-
(using c: Candidate[L])
67-
(using check: c.OutW =:= c.OutW)
68-
: DFVal[c.OutW, c.OutP | RP] = ???
59+
def ^^^[R](rhs: Option[R])
60+
(using es: Sub[lhs.type, L])
61+
(using c: Candidate[L])
62+
(using check: c.OutP =:= c.OutP): Option[c.OutP | R] = ???
6963

70-
val x: DFVal[8, true] = ???
64+
val x: Option[true] = ???
7165
val z1 = x ^^^ x // Ok
7266
val z2 = z1 ^^^ x // Ok
7367
val zzz = x ^^^ x ^^^ x // Error before changes

0 commit comments

Comments
 (0)