File tree 1 file changed +8
-3
lines changed
tests/neg-custom-args/erased
1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -3,15 +3,20 @@ import scala.language.experimental.erasedDefinitions
3
3
4
4
object App {
5
5
trait A { type L >: Any }
6
- // def upcast(a: A, x: Any): a.L = x
7
6
def upcast (erased a : A )(x : Any ): a.L = x
8
- // lazy val p: A { type L <: Nothing } = p
9
- erased val p : A { type L <: Nothing } = p // error
7
+ erased val p : A { type L <: Nothing } = p
10
8
def coerce (x : Any ): Int = upcast(p)(x) // error
11
9
12
10
def coerceInline (x : Any ): Int = upcast(compiletime.erasedValue[A {type L <: Nothing }])(x) // error
13
11
12
+ trait B { type L <: Nothing }
13
+ def upcast_dep_parameter (erased a : B )(x : a.L ) : Int = x
14
+ erased val q : B { type L >: Any } = compiletime.erasedValue
15
+
16
+ def coerceInlineWithB (x : Any ): Int = upcast_dep_parameter(q)(x) // error
17
+
14
18
def main (args : Array [String ]): Unit = {
15
19
println(coerce(" Uh oh!" ))
20
+ println(coerceInlineWithB(" Uh oh!" ))
16
21
}
17
22
}
You can’t perform that action at this time.
0 commit comments