Skip to content

Commit d4e477c

Browse files
committed
Another test
1 parent 1558591 commit d4e477c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/pos/erased-conforms.scala

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import language.experimental.erasedTerms
2+
erased class ErasedTerm
3+
4+
erased class <::<[-From, +To] extends ErasedTerm
5+
6+
erased class =::=[From, To] extends (From <::< To)
7+
8+
erased given [X]: (X =::= X) = scala.compiletime.erasedValue
9+
10+
extension [From](x: From)
11+
inline def cast[To](using From <::< To): To = x.asInstanceOf[To] // Safe cast because we know `From <:< To`
12+
13+
14+
def convert[A, B](a: A)(using /*erased*/ x: A <::< B): B =
15+
// println(x) // error: OK because x should be erased
16+
// but currently x is not marked as erased which it should
17+
a.cast[B]
18+
19+
20+
@main def App: Unit = convert[Int, Int](3) // should not be an error

0 commit comments

Comments
 (0)