Use initialMissingTypes after final round of tracing
Bug: 155911406
Change-Id: I3c2fae11d9e884d4a70cec26662a8bcf6ed01921
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index 3288a39..bb5b89a 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -2836,7 +2836,11 @@
new AppInfoWithLiveness(
app,
SetUtils.mapIdentityHashSet(deadProtoTypeCandidates, DexProgramClass::getType),
- missingTypes,
+ // TODO(b/155959821): We should be able to assert that missing types is a subset of
+ // initialMissingTypes + synthesized types.
+ mode.isFinalTreeShaking()
+ ? Sets.union(initialMissingTypes, missingTypes)
+ : missingTypes,
SetUtils.mapIdentityHashSet(liveTypes.getItems(), DexProgramClass::getType),
Collections.unmodifiableSet(instantiatedAppServices),
Enqueuer.toSortedDescriptorSet(targetedMethods.getItems()),