Fix incorrect lookup in isMaterializableInContext()
Change-Id: I796ec0c961ad67aa72e469dd90b98b3960cf3d42
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/value/SingleConstClassValue.java b/src/main/java/com/android/tools/r8/ir/analysis/value/SingleConstClassValue.java
index c42a3bb..3352cf7 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/value/SingleConstClassValue.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/value/SingleConstClassValue.java
@@ -88,7 +88,7 @@
AppView<AppInfoWithLiveness> appView, ProgramMethod context) {
DexType baseType = type.toBaseType(appView.dexItemFactory());
if (baseType.isClassType()) {
- DexClass clazz = appView.definitionFor(type);
+ DexClass clazz = appView.definitionFor(baseType);
return clazz != null
&& clazz.isResolvable(appView)
&& AccessControl.isClassAccessible(clazz, context, appView).isTrue();
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/value/SingleFieldValue.java b/src/main/java/com/android/tools/r8/ir/analysis/value/SingleFieldValue.java
index 8769ab2..de0be6d 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/value/SingleFieldValue.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/value/SingleFieldValue.java
@@ -73,7 +73,7 @@
NumberGenerator valueNumberGenerator,
TypeAndLocalInfoSupplier info) {
TypeElement type = TypeElement.fromDexType(field.type, maybeNull(), appView);
- assert type.lessThanOrEqual(info.getOutType(), appView);
+ assert type.lessThanOrEqual(info.getOutType(), appView) || type.isBasedOnMissingClass(appView);
Value outValue = new Value(valueNumberGenerator.next(), type, info.getLocalInfo());
return new StaticGet(outValue, field);
}