diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2016-10-10 12:05:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-10 12:05:17 -0500 |
commit | d7fe04993e10750c308e44b0fe563bcd3b0714ad (patch) | |
tree | 82151ad481ca720b17b29fbe15adf0b790c0d8f4 /src | |
parent | 876401bbe7071083325e33c902e94abd93b0b60b (diff) | |
parent | e794e513264373bc73b0b338cb1fef647984e26a (diff) | |
download | scala-d7fe04993e10750c308e44b0fe563bcd3b0714ad.tar.gz scala-d7fe04993e10750c308e44b0fe563bcd3b0714ad.tar.bz2 scala-d7fe04993e10750c308e44b0fe563bcd3b0714ad.zip |
Merge pull request #5452 from lrytz/sd242
Fix the interface flag when re-writing a closure call to the body method
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/opt/ClosureOptimizer.scala | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/opt/ClosureOptimizer.scala b/src/compiler/scala/tools/nsc/backend/jvm/opt/ClosureOptimizer.scala index 081830d61d..35ee5ba13d 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/opt/ClosureOptimizer.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/opt/ClosureOptimizer.scala @@ -325,8 +325,7 @@ class ClosureOptimizer[BT <: BTypes](val btypes: BT) { insns.insertBefore(invocation, new InsnNode(DUP)) INVOKESPECIAL } - val isInterface = bodyOpcode == INVOKEINTERFACE - val bodyInvocation = new MethodInsnNode(bodyOpcode, lambdaBodyHandle.getOwner, lambdaBodyHandle.getName, lambdaBodyHandle.getDesc, isInterface) + val bodyInvocation = new MethodInsnNode(bodyOpcode, lambdaBodyHandle.getOwner, lambdaBodyHandle.getName, lambdaBodyHandle.getDesc, lambdaBodyHandle.isInterface) ownerMethod.instructions.insertBefore(invocation, bodyInvocation) val bodyReturnType = Type.getReturnType(lambdaBodyHandle.getDesc) |