Update illegal access analysis in class merger
Fixes the tests testNoIllegalClassAccess and testNoIllegalClassAccessWithAccessModifications.
Change-Id: Id5a58fdea74fce718fe3cd48f0cefdace8725db1
diff --git a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
index 38af2c3..c5d2144 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
@@ -323,11 +323,11 @@
}
// Check that all accesses to [source] and its members from inside the current package of
- // [source] will continue to work. This is guaranteed if [source] is public and all members of
+ // [source] will continue to work. This is guaranteed if [target] is public and all members of
// [source] are either private or public.
//
// (Deliberately not checking all accesses to [source] since that would be expensive.)
- if (!source.accessFlags.isPublic()) {
+ if (!target.accessFlags.isPublic()) {
return true;
}
for (DexEncodedField field : source.fields()) {
diff --git a/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java b/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
index 7d200bd..4da4821 100644
--- a/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
@@ -515,9 +515,6 @@
ImmutableSet<String> preservedClassNames =
ImmutableSet.of(
"classmerging.SimpleInterfaceAccessTest",
- // TODO(christofferqa): Should be able to merge SimpleInterface into SimpleInterfaceImpl
- // when access modifications are allowed.
- "classmerging.SimpleInterfaceAccessTest$SimpleInterface",
"classmerging.SimpleInterfaceAccessTest$OtherSimpleInterfaceImpl",
"classmerging.pkg.SimpleInterfaceImplRetriever",
"classmerging.pkg.SimpleInterfaceImplRetriever$SimpleInterfaceImpl");