Initialize synthetic code objects as not processed.
Bug: 158818229
Change-Id: I4848bab479672b4dea06409714c92e288e922e79
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index 74a31bf..5cbe06a 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -1312,7 +1312,7 @@
accessFlags = from.accessFlags.copy();
annotations = from.annotations();
code = from.code;
- compilationState = from.compilationState;
+ compilationState = CompilationState.NOT_PROCESSED;
optimizationInfo = from.optimizationInfo.mutableCopy();
kotlinMemberInfo = from.kotlinMemberInfo;
classFileVersion = from.classFileVersion;
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index c53b686..5f6f83b 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -1195,20 +1195,16 @@
timing.end();
}
- if (method.isProcessed()) {
- // We loose locals information when processing dex code, so if in debug mode only process
- // synthesized methods.
- // TODO(b/158818229): Check if the synthesized check is needed.
- assert !isDebugMode || method.isD8R8Synthesized();
- assert !appView.enableWholeProgramOptimizations()
- || !appView.appInfo().withLiveness().neverReprocess.contains(method.method);
- } else {
- if (lambdaRewriter != null) {
- timing.begin("Desugar lambdas");
- lambdaRewriter.desugarLambdas(code);
- timing.end();
- assert code.isConsistentSSA();
- }
+ assert !method.isProcessed() || !isDebugMode;
+ assert !method.isProcessed()
+ || !appView.enableWholeProgramOptimizations()
+ || !appView.appInfo().withLiveness().neverReprocess.contains(method.method);
+
+ if (!method.isProcessed() && lambdaRewriter != null) {
+ timing.begin("Desugar lambdas");
+ lambdaRewriter.desugarLambdas(code);
+ timing.end();
+ assert code.isConsistentSSA();
}
if (lambdaMerger != null) {