Skip to content

Commit f3f9e79

Browse files
committed
Flesh out test
1 parent e5a96e7 commit f3f9e79

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

tests/pos/i14013.scala

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
import LightTypeTagInheritance._
2+
3+
trait LightTypeTagRef
4+
5+
object LightTypeTagInheritance {
6+
private final case class Ctx(self: LightTypeTagInheritance) {
7+
def next(): Ctx = Ctx(self)
8+
}
9+
private implicit final class CtxExt(private val ctx: Ctx) extends AnyVal {
10+
def isChild(selfT0: LightTypeTagRef, thatT0: LightTypeTagRef): Boolean = ctx.self.isChild(ctx.next())(selfT0, thatT0)
11+
}
12+
}
13+
14+
class LightTypeTagInheritance {
15+
16+
def isChild(s: LightTypeTagRef, t: LightTypeTagRef): Boolean = {
17+
isChild(new Ctx(this))(s, t)
18+
}
19+
20+
private def isChild(ctx: Ctx)(s: LightTypeTagRef, t: LightTypeTagRef): Boolean = {
21+
ctx.isChild(s, t)
22+
}
23+
24+
}
25+
26+
object App extends App {
27+
println(LightTypeTagInheritance)
28+
}
29+
30+
131
object Foo {
232
case class Bar(i: Int)
333

@@ -10,6 +40,24 @@ class Foo {
1040
def bar = Foo.Bar(1).twice
1141
}
1242

13-
object App extends App {
43+
object App2 extends App {
1444
println((new Foo).bar)
15-
}
45+
}
46+
47+
object Foo2 {
48+
case class Bar(i: Int)
49+
50+
private given BarOps: AnyRef with {
51+
extension (bar: Bar)
52+
def twice: Bar = Bar(bar.i * 2)
53+
}
54+
}
55+
56+
class Foo2 {
57+
def bar = Foo2.Bar(1).twice
58+
}
59+
60+
object App3 extends App {
61+
println((new Foo2).bar)
62+
}
63+

0 commit comments

Comments
 (0)