diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2016-04-28 09:55:50 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2016-04-28 22:17:20 +0200 |
commit | ca382b7c0bd1112a3b2e54e570c32134492097e7 (patch) | |
tree | 603b48093898a25189ffc21f1d7520f9880be055 /test/junit/scala/tools/nsc/backend/jvm/CodeGenTools.scala | |
parent | 93f209dd65d5c05fc2cb61916a850940499c9261 (diff) | |
download | scala-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.scala | 6 |
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) |