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) {
