| commit | 7bfb5bd5a0ba1ddc6d95dc66448a7b249c9b922e | [log] [tgz] |
|---|---|---|
| author | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Mar 22 09:06:29 2023 +0100 |
| committer | Christoffer Quist Adamsen <christofferqa@google.com> | Wed Mar 22 09:06:29 2023 +0100 |
| tree | 8813b6dcc09f5bc02315b8411bdb689838af5cb9 | |
| parent | cd28ca65b0c715cd780f72e714fab9a33e1cd98d [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 d7a47a1..f30986c 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 {