commit | dc31247895b55223dced840bd2cdbba720ac450f | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Sun Dec 17 21:18:23 2023 +0100 |
committer | Christoffer Adamsen <christofferqa@google.com> | Sun Dec 17 20:20:18 2023 +0000 |
tree | 4875c307bb3bcc602dbd64f15b302933776fbed2 | |
parent | e5b11fd1e7bb0848136a305ec9f502fd1a3a3ce7 [diff] |
Fix AbstractMethodError due to collision with overrides Fixes: b/316345446 Change-Id: I61cc27b7e8e613f98a11b2226b7638fee29c0674
diff --git a/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java b/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java index 5e0445e..207c73b 100644 --- a/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java +++ b/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java
@@ -397,8 +397,7 @@ // subclasses perform the identical rename. if (!reservedInterfaceSignatures.containsKey(method) && Iterables.any( - newSignature.getProto().getParameterBaseTypes(dexItemFactory), - mergedClasses::isMergeTarget)) { + newSignature.getProto().getBaseTypes(dexItemFactory), mergedClasses::isMergeTarget)) { renamedClassVirtualMethods.put(method.getSignature(), newSignature); }
diff --git a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerCollisionWithOverridesTest.java b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerCollisionWithOverridesTest.java index 663363a..824a3fc 100644 --- a/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerCollisionWithOverridesTest.java +++ b/src/test/java/com/android/tools/r8/classmerging/vertical/VerticalClassMergerCollisionWithOverridesTest.java
@@ -48,7 +48,7 @@ .setMinApi(parameters) .compile() .run(parameters.getRuntime(), Main.class) - .assertFailureWithErrorThatThrows(AbstractMethodError.class); + .assertSuccessWithOutputLines("C C.m()", "B B.m()"); } private static byte[] getTransformedClass() throws Exception {