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