| commit | 3cedae25325e3a507d013a94e2eccb04927256b2 | [log] [tgz] |
|---|---|---|
| author | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Mar 22 10:28:21 2023 +0100 |
| committer | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Mar 22 10:28:21 2023 +0100 |
| tree | 42890b96e679890004897bd0014415b2e3a7e7ca | |
| parent | 40a6b5588203afa347e3b1308cce862c1ac75be5 [diff] |
Fix IllegalAccessError from redundant bridge removal Bug: b/274724134 Change-Id: I453f0b417b1cd5a47d73a4475a112d12eaa6612f
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java index 318b353..04068a9 100644 --- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java +++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -580,10 +580,10 @@ return false; } else if (accessFlags.isPrivate()) { return getHolderType() == other.getHolderType(); - } else if (accessFlags.isPublic() || accessFlags.isProtected()) { + } else if (accessFlags.isPublic()) { return true; } else { - assert accessFlags.isPackagePrivate(); + assert accessFlags.isPackagePrivate() || accessFlags.isProtected(); return getHolderType().getPackageName().equals(other.getHolderType().getPackageName()); } }
diff --git a/src/test/java/com/android/tools/r8/bridgeremoval/ProtectedBridgeRemovalTest.java b/src/test/java/com/android/tools/r8/bridgeremoval/ProtectedBridgeRemovalTest.java index 737924d..6747779 100644 --- a/src/test/java/com/android/tools/r8/bridgeremoval/ProtectedBridgeRemovalTest.java +++ b/src/test/java/com/android/tools/r8/bridgeremoval/ProtectedBridgeRemovalTest.java
@@ -69,8 +69,7 @@ .setMinApi(parameters) .compile() .run(parameters.getRuntime(), Main.class) - // TODO(b/274724134): Should not fail. - .assertFailureWithErrorThatThrows(IllegalAccessError.class); + .assertSuccessWithOutput(EXPECTED_OUTPUT); } public static class Main {