Skip to content

Commit acf268e

Browse files
committed
More test cases for pattern matching against erased parameters
1 parent 95c9006 commit acf268e

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
case erased: [erased case]
2-
case erased nested: -10
2+
case erased nested: c
3+
case erased nested 2: d

tests/run-custom-args/run-macros-erased/i17105/Macro_1.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@ def testExprImpl(body: Expr[Any])(using Quotes): Expr[String] =
99
case '{ def erasedfn(erased y: String) = "placeholder"; $a(erasedfn): String } =>
1010
'{ $a((erased z: String) => "[erased case]") }
1111
case '{
12-
def erasedfn(a: Int)(b: Int): Int = a
12+
def erasedfn(a: String, b: String)(c: String, d: String): String = a
1313
$y(erasedfn): String
1414
} => Expr("This should not match")
1515
case '{
16-
def erasedfn(a: Int)(erased b: Int): Int = a
16+
def erasedfn(a: String, erased b: String)(erased c: String, d: String): String = a
1717
$y(erasedfn): String
1818
} =>
19-
'{ $y((a: Int) => (erased b: Int) => -a) }
19+
'{ $y((a: String, erased b: String) => (erased c: String, d: String) => d) }
20+
case '{
21+
def erasedfn(a: String, erased b: String)(c: String, erased d: String): String = a
22+
$y(erasedfn): String
23+
} =>
24+
'{ $y((a: String, erased b: String) => (c: String, erased d: String) => c) }
2025
case _ => Expr("not matched")
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
@main def Test: Unit =
22
println("case erased: " + testExpr { def erasedfn1(erased x: String) = "placeholder"; erasedfn1("arg1")})
3-
println("case erased nested: " + testExpr { def erasedfn2(p: Int)(erased q: Int) = p; erasedfn2(10)(0).toString() })
3+
println("case erased nested: " + testExpr {
4+
def erasedfn2(p: String, erased q: String)(r: String, erased s: String) = p
5+
erasedfn2("a", "b")("c", "d")
6+
})
7+
println("case erased nested 2: " + testExpr {
8+
def erasedfn2(p: String, erased q: String)(erased r: String, s: String) = p
9+
erasedfn2("a", "b")("c", "d")
10+
})

0 commit comments

Comments
 (0)