File tree Expand file tree Collapse file tree 2 files changed +8
-26
lines changed
Expand file tree Collapse file tree 2 files changed +8
-26
lines changed Original file line number Diff line number Diff line change 11// See https://github.com/lampepfl/dotty/issues/4060#issuecomment-445808377
2- import scala .language .experimental .erasedDefinitions
32
43object App {
54 trait A { type L >: Any }
6- // def upcast(a: A, x: Any): a.L = x
75 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
6+ erased val p : A { type L <: Nothing } = p
107 def coerce (x : Any ): Int = upcast(p)(x) // error
118
129 def coerceInline (x : Any ): Int = upcast(compiletime.erasedValue[A {type L <: Nothing }])(x) // error
1310
11+ trait B { type L <: Nothing }
12+ def upcast_dep_parameter (erased a : B )(x : a.L ) : Int = x
13+ erased val q : B { type L >: Any } = compiletime.erasedValue
14+
15+ def coerceInlineWithB (x : Any ): Int = upcast_dep_parameter(q)(x) // error
16+
1417 def main (args : Array [String ]): Unit = {
1518 println(coerce(" Uh oh!" ))
19+ println(coerceInlineWithB(" Uh oh!" ))
1620 }
1721}
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments