Account for missing classes in member rebinding
Bug: 212377892
Change-Id: I9db54c7fceb3f1027d09f375e769b9c25d0e4dd0
diff --git a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
index 834e879..de68c75 100644
--- a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
+++ b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
@@ -197,11 +197,12 @@
}
private static DexType firstLibraryClass(DexDefinitionSupplier definitions, DexType bottom) {
- DexClass searchClass = definitions.definitionFor(bottom);
- while (searchClass.isProgramClass()) {
- searchClass = definitions.definitionFor(searchClass.superType);
+ DexClass searchClass = definitions.contextIndependentDefinitionFor(bottom);
+ while (searchClass != null && searchClass.isProgramClass()) {
+ searchClass =
+ definitions.definitionFor(searchClass.getSuperType(), searchClass.asProgramClass());
}
- return searchClass.type;
+ return searchClass != null ? searchClass.getType() : null;
}
private MethodResolutionResult resolveMethodOnClass(DexMethod method) {