File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments