No desugaring for AssertionError when desugaring is turned off

Bug: b/247596495
Change-Id: I93558f5b32daa4bc4bf095535562bc78e35ce2ac
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 3f1bdb4..f85f8d5 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
@@ -184,7 +184,9 @@
     this.printer = printer;
     this.codeRewriter = new CodeRewriter(appView);
     this.assertionErrorTwoArgsConstructorRewriter =
-        new AssertionErrorTwoArgsConstructorRewriter(appView);
+        appView.options().desugarState.isOn()
+            ? new AssertionErrorTwoArgsConstructorRewriter(appView)
+            : null;
     this.classInitializerDefaultsOptimization =
         new ClassInitializerDefaultsOptimization(appView, this);
     this.stringOptimizer = new StringOptimizer(appView);
@@ -1341,9 +1343,11 @@
     timing.begin("Natural Int Loop Remover");
     naturalIntLoopRemover.run(appView, code);
     timing.end();
-    timing.begin("Rewrite AssertionError");
-    assertionErrorTwoArgsConstructorRewriter.rewrite(code, methodProcessingContext);
-    timing.end();
+    if (assertionErrorTwoArgsConstructorRewriter != null) {
+      timing.begin("Rewrite AssertionError");
+      assertionErrorTwoArgsConstructorRewriter.rewrite(code, methodProcessingContext);
+      timing.end();
+    }
     timing.begin("Run CSE");
     codeRewriter.commonSubexpressionElimination(code);
     timing.end();
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java b/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
index 14c8ffd..2fa9d11 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
@@ -59,12 +59,11 @@
         .inspect(
             inspector ->
                 assertTrue(
-                    parameters.getApiLevel().isLessThan(AndroidApiLevel.K)
-                        || inspector.allClasses().stream()
-                            .noneMatch(
-                                clazz ->
-                                    SyntheticItemsTestUtils.isExternalSynthetic(
-                                        clazz.getFinalReference()))))
+                    inspector.allClasses().stream()
+                        .noneMatch(
+                            clazz ->
+                                SyntheticItemsTestUtils.isExternalSynthetic(
+                                    clazz.getFinalReference()))))
         .run(parameters.getRuntime(), Main.class)
         // None of the VMs we have for testing is missing the two args constructor.
         .assertSuccessWithOutputLines("message", "java.lang.RuntimeException: cause message");