Skip to content

Commit 377faec

Browse files
authored
Test that no into on enums and current mirror behavior for into (scala#23473)
2 parents 181fecc + 4c9e77d commit 377faec

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tests/neg/i23400.scala

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import scala.language.experimental.into
2+
import Conversion.into
3+
4+
import scala.deriving.Mirror
5+
6+
object Opaques:
7+
opaque into type MyInto[+A] >: A = A
8+
9+
import Opaques.MyInto
10+
11+
case class Foo(x: Int)
12+
case class Bar(foo: into[Foo])
13+
case class Baz(foo: MyInto[Foo])
14+
15+
given Conversion[Int, Foo] = Foo(_)
16+
17+
into enum Color: // error
18+
case Red, Green
19+
20+
def test =
21+
val barMirror = summon[Mirror.Of[Bar]]
22+
summon[barMirror.MirroredElemTypes =:= (into[Foo] *: EmptyTuple.type)] // error
23+
summon[barMirror.MirroredElemTypes =:= (Foo *: EmptyTuple.type)] // ok
24+
25+
val bazMirror = summon[Mirror.Of[Baz]]
26+
summon[bazMirror.MirroredElemTypes =:= (MyInto[Foo] *: EmptyTuple.type)] // ok
27+
summon[bazMirror.MirroredElemTypes =:= (Foo *: EmptyTuple.type)] // error

0 commit comments

Comments
 (0)