Ignore missing classes in L8 pt. 2

Change-Id: I05c51be32f7df12f735cf1a8209fdc9443d42569
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index a085428..b552bb2 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -152,9 +152,6 @@
     InternalOptions internal = new InternalOptions(factory, getReporter());
     assert !internal.debug;
     internal.debug = getMode() == CompilationMode.DEBUG;
-    // TODO(b/180903899): Remove once -dontwarn sun.misc.Unsafe is in place.
-    assert !internal.ignoreMissingClasses;
-    internal.ignoreMissingClasses = true;
     assert internal.mainDexListConsumer == null;
     assert !internal.minimalMainDex;
     internal.minApiLevel = getMinApiLevel();
diff --git a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
index de249d8..c2d6a7c 100644
--- a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
+++ b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
@@ -133,7 +133,9 @@
           getMissingClassesToBeReported(appView, synthesizingContextOracle);
       if (!missingClassesToBeReported.isEmpty()) {
         MissingDefinitionsDiagnostic diagnostic = createDiagnostic(missingClassesToBeReported);
-        if (appView.options().ignoreMissingClasses) {
+        InternalOptions options = appView.options();
+        // TODO(b/180903899): Remove L8 special handling when -dontwarn sun.misc.Unsafe is in place.
+        if (options.ignoreMissingClasses || options.isDesugaredLibraryCompilation()) {
           appView.reporter().warning(diagnostic);
         } else {
           throw appView.reporter().fatalError(diagnostic);