Fix assert for KotlinMetadata
Change-Id: I6ee8bb0bb8858067382da05c75ef5da99124f290
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
index 04392f3..583bd40 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
@@ -89,17 +89,21 @@
GraphLens kotlinMetadataLens = appView.getKotlinMetadataLens();
DexType rewrittenMetadataType =
graphLens.lookupClassType(factory.kotlinMetadataType, kotlinMetadataLens);
- DexClass kotlinMetadata = appView.definitionFor(rewrittenMetadataType);
+ // The Kotlin metadata may be present in the input but pruned away in the final tree shaking.
+ DexClass kotlinMetadata =
+ appView.appInfo().definitionForWithoutExistenceAssert(rewrittenMetadataType);
WriteMetadataFieldInfo writeMetadataFieldInfo =
- new WriteMetadataFieldInfo(
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.kind),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.metadataVersion),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.bytecodeVersion),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.data1),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.data2),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.extraString),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.packageName),
- kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.extraInt));
+ kotlinMetadata == null
+ ? WriteMetadataFieldInfo.rewriteAll()
+ : new WriteMetadataFieldInfo(
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.kind),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.metadataVersion),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.bytecodeVersion),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.data1),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.data2),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.extraString),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.packageName),
+ kotlinMetadataFieldExists(kotlinMetadata, appView, kotlin.metadata.extraInt));
ThreadUtils.processItems(
appView.appInfo().classes(),
clazz -> {