Skip to content

Commit 2ef48d9

Browse files
dwijnandodersky
authored andcommitted
Add second test case from comment 1
1 parent cf520a0 commit 2ef48d9

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

tests/pos/i19942.1.scala

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
trait Alternative[F[_]]
2+
3+
opaque type Derived[A] = A
4+
object Derived:
5+
extension [A](derived: Derived[A]) def instance: A = derived
6+
infix type <<<[F[_], G[_]] = [x] =>> F[G[x]]
7+
8+
import Derived.*
9+
import scala.compiletime.summonInline
10+
11+
type DerivedAlternative[F[_]] = Derived[Alternative[F]]
12+
object DerivedAlternative:
13+
inline def apply[F[_]]: Alternative[F] =
14+
import DerivedAlternative.given
15+
summonInline[DerivedAlternative[F]].instance
16+
given nested[F[_], G[_]]: DerivedAlternative[F <<< G] = ???
17+
18+
object auto:
19+
object alternative:
20+
transparent inline given [F[_]]: Alternative[F] = DerivedAlternative[F]
21+
22+
trait Test:
23+
import Test.*
24+
import auto.alternative.given
25+
val fails = summon[Alternative[OptList]]
26+
27+
// Fails if companion object defined AFTER trait
28+
object Test:
29+
type OptList[A] = Option[List[A]]

0 commit comments

Comments
 (0)