From 44a26afb091f2d23d68bcad53e45a319b299867a Mon Sep 17 00:00:00 2001 From: kmb Date: Fri, 16 Mar 2018 18:52:15 -0700 Subject: Reflect core library moves in super calls, even in default method stubs. Always generate default method stubs for emulated methods. RELNOTES: None. PiperOrigin-RevId: 189423933 --- .../build/android/desugar/CoreLibraryInvocationRewriter.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibraryInvocationRewriter.java') diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibraryInvocationRewriter.java b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibraryInvocationRewriter.java index 77db915f4b..381a3443c7 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibraryInvocationRewriter.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibraryInvocationRewriter.java @@ -14,6 +14,7 @@ package com.google.devtools.build.android.desugar; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import org.objectweb.asm.ClassVisitor; @@ -65,9 +66,13 @@ public class CoreLibraryInvocationRewriter extends ClassVisitor { } if (opcode == Opcodes.INVOKESTATIC || opcode == Opcodes.INVOKESPECIAL) { - checkArgument(itf, "Expected interface to rewrite %s.%s : %s", owner, name, desc); - owner = InterfaceDesugaring.getCompanionClassName(coreInterfaceName); + checkArgument(itf || opcode == Opcodes.INVOKESPECIAL, + "Expected interface to rewrite %s.%s : %s", owner, name, desc); + owner = coreInterface.isInterface() + ? InterfaceDesugaring.getCompanionClassName(coreInterfaceName) + : checkNotNull(support.getMoveTarget(coreInterfaceName, name)); } else { + checkState(coreInterface.isInterface()); owner = coreInterfaceName + "$$Dispatch"; } -- cgit v1.2.3