summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2016-02-13 19:39:14 +0100
committerLukas Rytz <lukas.rytz@gmail.com>2016-02-13 19:39:14 +0100
commit738f27313ba5a46800b8353bcaba640f6f143d01 (patch)
tree67d98b09da8906a09ac52fa8c668ad4d6ee1e9d0
parent7c25282ff91445dc1bdc20e49b68c2d20c318876 (diff)
downloadscala-738f27313ba5a46800b8353bcaba640f6f143d01.tar.gz
scala-738f27313ba5a46800b8353bcaba640f6f143d01.tar.bz2
scala-738f27313ba5a46800b8353bcaba640f6f143d01.zip
SI-8790 test case
Tuples created for pattern matching are eliminated since https://github.com/scala/scala/pull/4858
-rw-r--r--test/junit/scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala
index 438c2a94dc..8f18a84a1c 100644
--- a/test/junit/scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala
+++ b/test/junit/scala/tools/nsc/backend/jvm/opt/MethodLevelOptsTest.scala
@@ -756,4 +756,24 @@ class MethodLevelOptsTest extends ClearAfterClass {
val List(c) = compileClasses(methodOptCompiler)(code)
assertNoInvoke(getSingleMethod(c, "compare"))
}
+
+ @Test
+ def t8790(): Unit = {
+ val code =
+ """class C {
+ | def t(x: Int, y: Int): String = (x, y) match {
+ | case (7, 8) => "a"
+ | case _ => "b"
+ | }
+ |}
+ """.stripMargin
+ val List(c) = compileClasses(methodOptCompiler)(code)
+
+ assertEquals(getSingleMethod(c, "t").instructions.summary, List(
+ BIPUSH, ILOAD, IF_ICMPNE,
+ BIPUSH, ILOAD, IF_ICMPNE,
+ LDC, ASTORE, GOTO,
+ -1, LDC, ASTORE,
+ -1, ALOAD, ARETURN))
+ }
}