Improve error message when writing InvalidCode

Bug: b/266045293
Change-Id: I192ba2b4320acd274a434ca0797504227c655159
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index acc9161..cc88ca9 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -640,6 +640,15 @@
     Code code = method.getDefinition().getCode();
     assert code.isCfWritableCode();
     assert code.estimatedDexCodeSizeUpperBoundInBytes() > 0;
+    if (!code.isCfWritableCode()) {
+      // This should never happen (see assertion above), but desugaring bugs may lead the
+      // CfApplicationWriter to try to write invalid code and we need the better error message.
+      throw new Unreachable(
+          "The CfApplicationWriter cannot write non cf writable code "
+              + code.getClass().getCanonicalName()
+              + " for method "
+              + method.getReference().toSourceString());
+    }
     code.asCfWritableCode()
         .writeCf(method, classFileVersion, appView, namingLens, rewriter, visitor);
   }