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);
}