summaryrefslogtreecommitdiff
path: root/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2016-04-28 09:55:50 +0200
committerLukas Rytz <lukas.rytz@gmail.com>2016-04-28 22:17:20 +0200
commitca382b7c0bd1112a3b2e54e570c32134492097e7 (patch)
tree603b48093898a25189ffc21f1d7520f9880be055 /test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala
parent93f209dd65d5c05fc2cb61916a850940499c9261 (diff)
downloadscala-ca382b7c0bd1112a3b2e54e570c32134492097e7.tar.gz
scala-ca382b7c0bd1112a3b2e54e570c32134492097e7.tar.bz2
scala-ca382b7c0bd1112a3b2e54e570c32134492097e7.zip
SD-140 inline the correct default method
When inheriting multiple default methods, select the correct one to inline. Implements method resolution according to the JVM spec.
Diffstat (limited to 'test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala')
-rw-r--r--test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala b/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala
index fe43ed2f6a..389e5b2ead 100644
--- a/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala
+++ b/test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala
@@ -206,6 +206,12 @@ object CodeGenTools {
assert(actual == expected, s"\nFound : ${quote(actual)}\nExpected: ${quote(expected)}")
}
+ def assertNoIndy(m: Method): Unit = assertNoIndy(m.instructions)
+ def assertNoIndy(l: List[Instruction]) = {
+ val indy = l collect { case i: InvokeDynamic => i }
+ assert(indy.isEmpty, indy)
+ }
+
def getSingleMethod(classNode: ClassNode, name: String): Method =
convertMethod(classNode.methods.asScala.toList.find(_.name == name).get)