Desugared library: Disable SummaryStatistics conversions

Bug: 148584911
Change-Id: I7e13798669bc475d88d4e8ad7cc674c168ee3f0b
diff --git a/src/library_desugar/desugar_jdk_libs.json b/src/library_desugar/desugar_jdk_libs.json
index 049699a..d46b12d 100644
--- a/src/library_desugar/desugar_jdk_libs.json
+++ b/src/library_desugar/desugar_jdk_libs.json
@@ -2,7 +2,7 @@
   "configuration_format_version": 3,
   "group_id" : "com.tools.android",
   "artifact_id" : "desugar_jdk_libs",
-  "version": "1.0.10",
+  "version": "1.0.11",
   "required_compilation_api_level": 26,
   "synthesized_library_classes_package_prefix": "j$.",
   "common_flags": [
diff --git a/src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java
index a0f6c8d..63845fc 100644
--- a/src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java
+++ b/src/library_desugar/java/java/util/DoubleSummaryStatisticsConversions.java
@@ -4,80 +4,19 @@
 
 package java.util;
 
-import java.lang.reflect.Field;
-
 public class DoubleSummaryStatisticsConversions {
 
-  private static final Field JAVA_LONG_COUNT_FIELD;
-  private static final Field JAVA_DOUBLE_SUM_FIELD;
-  private static final Field JAVA_DOUBLE_MIN_FIELD;
-  private static final Field JAVA_DOUBLE_MAX_FIELD;
-  private static final Field JD_LONG_COUNT_FIELD;
-  private static final Field JD_DOUBLE_SUM_FIELD;
-  private static final Field JD_DOUBLE_MIN_FIELD;
-  private static final Field JD_DOUBLE_MAX_FIELD;
-
-  static {
-    Class<?> javaDoubleSummaryStatisticsClass = java.util.DoubleSummaryStatistics.class;
-    JAVA_LONG_COUNT_FIELD = getField(javaDoubleSummaryStatisticsClass, "count");
-    JAVA_LONG_COUNT_FIELD.setAccessible(true);
-    JAVA_DOUBLE_SUM_FIELD = getField(javaDoubleSummaryStatisticsClass, "sum");
-    JAVA_DOUBLE_SUM_FIELD.setAccessible(true);
-    JAVA_DOUBLE_MIN_FIELD = getField(javaDoubleSummaryStatisticsClass, "min");
-    JAVA_DOUBLE_MIN_FIELD.setAccessible(true);
-    JAVA_DOUBLE_MAX_FIELD = getField(javaDoubleSummaryStatisticsClass, "max");
-    JAVA_DOUBLE_MAX_FIELD.setAccessible(true);
-
-    Class<?> jdDoubleSummaryStatisticsClass = j$.util.DoubleSummaryStatistics.class;
-    JD_LONG_COUNT_FIELD = getField(jdDoubleSummaryStatisticsClass, "count");
-    JD_LONG_COUNT_FIELD.setAccessible(true);
-    JD_DOUBLE_SUM_FIELD = getField(jdDoubleSummaryStatisticsClass, "sum");
-    JD_DOUBLE_SUM_FIELD.setAccessible(true);
-    JD_DOUBLE_MIN_FIELD = getField(jdDoubleSummaryStatisticsClass, "min");
-    JD_DOUBLE_MIN_FIELD.setAccessible(true);
-    JD_DOUBLE_MAX_FIELD = getField(jdDoubleSummaryStatisticsClass, "max");
-    JD_DOUBLE_MAX_FIELD.setAccessible(true);
-  }
-
   private DoubleSummaryStatisticsConversions() {}
 
-  private static Field getField(Class<?> clazz, String name) {
-    try {
-      return clazz.getDeclaredField(name);
-    } catch (NoSuchFieldException e) {
-      throw new Error("Failed summary statistics set-up.", e);
-    }
-  }
-
   public static j$.util.DoubleSummaryStatistics convert(java.util.DoubleSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    j$.util.DoubleSummaryStatistics newInstance = new j$.util.DoubleSummaryStatistics();
-    try {
-      JD_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JD_DOUBLE_SUM_FIELD.set(newInstance, stats.getSum());
-      JD_DOUBLE_MIN_FIELD.set(newInstance, stats.getMin());
-      JD_DOUBLE_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " to java.util.DoubleSummaryStatistics");
   }
 
   public static java.util.DoubleSummaryStatistics convert(j$.util.DoubleSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    java.util.DoubleSummaryStatistics newInstance = new java.util.DoubleSummaryStatistics();
-    try {
-      JAVA_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JAVA_DOUBLE_SUM_FIELD.set(newInstance, stats.getSum());
-      JAVA_DOUBLE_MIN_FIELD.set(newInstance, stats.getMin());
-      JAVA_DOUBLE_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " from java.util.DoubleSummaryStatistics");
   }
 }
diff --git a/src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java
index 8e9b616..3645a41 100644
--- a/src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java
+++ b/src/library_desugar/java/java/util/IntSummaryStatisticsConversions.java
@@ -4,81 +4,19 @@
 
 package java.util;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
 public class IntSummaryStatisticsConversions {
 
-  private static final Field JAVA_LONG_COUNT_FIELD;
-  private static final Field JAVA_LONG_SUM_FIELD;
-  private static final Field JAVA_INT_MIN_FIELD;
-  private static final Field JAVA_INT_MAX_FIELD;
-  private static final Field JD_LONG_COUNT_FIELD;
-  private static final Field JD_LONG_SUM_FIELD;
-  private static final Field JD_INT_MIN_FIELD;
-  private static final Field JD_INT_MAX_FIELD;
-
-  static {
-    Class<?> javaIntSummaryStatisticsClass = java.util.IntSummaryStatistics.class;
-    JAVA_LONG_COUNT_FIELD = getField(javaIntSummaryStatisticsClass, "count");
-    JAVA_LONG_COUNT_FIELD.setAccessible(true);
-    JAVA_LONG_SUM_FIELD = getField(javaIntSummaryStatisticsClass, "sum");
-    JAVA_LONG_SUM_FIELD.setAccessible(true);
-    JAVA_INT_MIN_FIELD = getField(javaIntSummaryStatisticsClass, "min");
-    JAVA_INT_MIN_FIELD.setAccessible(true);
-    JAVA_INT_MAX_FIELD = getField(javaIntSummaryStatisticsClass, "max");
-    JAVA_INT_MAX_FIELD.setAccessible(true);
-
-    Class<?> jdIntSummaryStatisticsClass = j$.util.IntSummaryStatistics.class;
-    JD_LONG_COUNT_FIELD = getField(jdIntSummaryStatisticsClass, "count");
-    JD_LONG_COUNT_FIELD.setAccessible(true);
-    JD_LONG_SUM_FIELD = getField(jdIntSummaryStatisticsClass, "sum");
-    JD_LONG_SUM_FIELD.setAccessible(true);
-    JD_INT_MIN_FIELD = getField(jdIntSummaryStatisticsClass, "min");
-    JD_INT_MIN_FIELD.setAccessible(true);
-    JD_INT_MAX_FIELD = getField(jdIntSummaryStatisticsClass, "max");
-    JD_INT_MAX_FIELD.setAccessible(true);
-  }
-
   private IntSummaryStatisticsConversions() {}
 
-  private static Field getField(Class<?> clazz, String name) {
-    try {
-      return clazz.getDeclaredField(name);
-    } catch (NoSuchFieldException e) {
-      throw new Error("Failed summary statistics set-up.", e);
-    }
-  }
-
   public static j$.util.IntSummaryStatistics convert(java.util.IntSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    j$.util.IntSummaryStatistics newInstance = new j$.util.IntSummaryStatistics();
-    try {
-      JD_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JD_LONG_SUM_FIELD.set(newInstance, stats.getSum());
-      JD_INT_MIN_FIELD.set(newInstance, stats.getMin());
-      JD_INT_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " to java.util.IntSummaryStatistics");
   }
 
   public static java.util.IntSummaryStatistics convert(j$.util.IntSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    java.util.IntSummaryStatistics newInstance = new java.util.IntSummaryStatistics();
-    try {
-      JAVA_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JAVA_LONG_SUM_FIELD.set(newInstance, stats.getSum());
-      JAVA_INT_MIN_FIELD.set(newInstance, stats.getMin());
-      JAVA_INT_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " from java.util.IntSummaryStatistics");
   }
 }
diff --git a/src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java b/src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java
index ae21eb2..af2c95b 100644
--- a/src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java
+++ b/src/library_desugar/java/java/util/LongSummaryStatisticsConversions.java
@@ -4,81 +4,19 @@
 
 package java.util;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
 public class LongSummaryStatisticsConversions {
 
-  private static final Field JAVA_LONG_COUNT_FIELD;
-  private static final Field JAVA_LONG_SUM_FIELD;
-  private static final Field JAVA_LONG_MIN_FIELD;
-  private static final Field JAVA_LONG_MAX_FIELD;
-  private static final Field JD_LONG_COUNT_FIELD;
-  private static final Field JD_LONG_SUM_FIELD;
-  private static final Field JD_LONG_MIN_FIELD;
-  private static final Field JD_LONG_MAX_FIELD;
-
-  static {
-    Class<?> javaLongSummaryStatisticsClass = java.util.LongSummaryStatistics.class;
-    JAVA_LONG_COUNT_FIELD = getField(javaLongSummaryStatisticsClass, "count");
-    JAVA_LONG_COUNT_FIELD.setAccessible(true);
-    JAVA_LONG_SUM_FIELD = getField(javaLongSummaryStatisticsClass, "sum");
-    JAVA_LONG_SUM_FIELD.setAccessible(true);
-    JAVA_LONG_MIN_FIELD = getField(javaLongSummaryStatisticsClass, "min");
-    JAVA_LONG_MIN_FIELD.setAccessible(true);
-    JAVA_LONG_MAX_FIELD = getField(javaLongSummaryStatisticsClass, "max");
-    JAVA_LONG_MAX_FIELD.setAccessible(true);
-
-    Class<?> jdLongSummaryStatisticsClass = j$.util.LongSummaryStatistics.class;
-    JD_LONG_COUNT_FIELD = getField(jdLongSummaryStatisticsClass, "count");
-    JD_LONG_COUNT_FIELD.setAccessible(true);
-    JD_LONG_SUM_FIELD = getField(jdLongSummaryStatisticsClass, "sum");
-    JD_LONG_SUM_FIELD.setAccessible(true);
-    JD_LONG_MIN_FIELD = getField(jdLongSummaryStatisticsClass, "min");
-    JD_LONG_MIN_FIELD.setAccessible(true);
-    JD_LONG_MAX_FIELD = getField(jdLongSummaryStatisticsClass, "max");
-    JD_LONG_MAX_FIELD.setAccessible(true);
-  }
-
   private LongSummaryStatisticsConversions() {}
 
-  private static Field getField(Class<?> clazz, String name) {
-    try {
-      return clazz.getDeclaredField(name);
-    } catch (NoSuchFieldException e) {
-      throw new Error("Failed summary statistics set-up.", e);
-    }
-  }
-
   public static j$.util.LongSummaryStatistics convert(java.util.LongSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    j$.util.LongSummaryStatistics newInstance = new j$.util.LongSummaryStatistics();
-    try {
-      JD_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JD_LONG_SUM_FIELD.set(newInstance, stats.getSum());
-      JD_LONG_MIN_FIELD.set(newInstance, stats.getMin());
-      JD_LONG_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " to java.util.LongSummaryStatistics");
   }
 
   public static java.util.LongSummaryStatistics convert(j$.util.LongSummaryStatistics stats) {
-    if (stats == null) {
-      return null;
-    }
-    java.util.LongSummaryStatistics newInstance = new java.util.LongSummaryStatistics();
-    try {
-      JAVA_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
-      JAVA_LONG_SUM_FIELD.set(newInstance, stats.getSum());
-      JAVA_LONG_MIN_FIELD.set(newInstance, stats.getMin());
-      JAVA_LONG_MAX_FIELD.set(newInstance, stats.getMax());
-    } catch (IllegalAccessException e) {
-      throw new Error("Failed summary statistics conversion.", e);
-    }
-    return newInstance;
+    throw new Error(
+        "Java 8+ API desugaring (library desugaring) cannot convert"
+            + " from java.util.LongSummaryStatistics");
   }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/APIConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/APIConversionTest.java
index ad8e74c..fcc2124 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/APIConversionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/APIConversionTest.java
@@ -30,8 +30,7 @@
 
   private static final AndroidApiLevel MIN_SUPPORTED = AndroidApiLevel.N;
   private static final String EXPECTED_RESULT =
-      StringUtils.lines(
-          "[5, 6, 7]", "j$.$r8$wrapper$java$util$stream$IntStream$-V-WRP", "IntSummaryStatistics");
+      StringUtils.lines("[5, 6, 7]", "j$.$r8$wrapper$java$util$stream$IntStream$-V-WRP");
 
   @Parameters(name = "{0}, shrinkDesugaredLibrary: {1}")
   public static List<Object[]> data() {
@@ -75,7 +74,11 @@
             keepRuleConsumer.get(),
             shrinkDesugaredLibrary)
         .run(parameters.getRuntime(), Executor.class)
-        .assertSuccessWithOutput(EXPECTED_RESULT);
+        .assertFailureWithOutput(EXPECTED_RESULT)
+        .assertFailureWithErrorThatMatches(
+            containsString(
+                "Java 8+ API desugaring (library desugaring) cannot convert"
+                    + " from java.util.IntSummaryStatistics"));
   }
 
   @Test
@@ -95,7 +98,11 @@
             keepRuleConsumer.get(),
             shrinkDesugaredLibrary)
         .run(parameters.getRuntime(), Executor.class)
-        .assertSuccessWithOutput(EXPECTED_RESULT);
+        .assertFailureWithOutput(EXPECTED_RESULT)
+        .assertFailureWithErrorThatMatches(
+            containsString(
+                "Java 8+ API desugaring (library desugaring) cannot convert"
+                    + " from java.util.IntSummaryStatistics"));
   }
 
   static class Executor {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/SummaryStatisticsConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/SummaryStatisticsConversionTest.java
index 21074c9..7fe00d5 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/SummaryStatisticsConversionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/SummaryStatisticsConversionTest.java
@@ -29,6 +29,16 @@
   private static final AndroidApiLevel MIN_SUPPORTED = AndroidApiLevel.N;
   private static final String EXPECTED_RESULT =
       StringUtils.lines(
+          "Java 8+ API desugaring (library desugaring) cannot convert"
+              + " from java.util.IntSummaryStatistics",
+          "Java 8+ API desugaring (library desugaring) cannot convert"
+              + " to java.util.LongSummaryStatistics",
+          "Java 8+ API desugaring (library desugaring) cannot convert"
+              + " to java.util.IntSummaryStatistics",
+          "Java 8+ API desugaring (library desugaring) cannot convert"
+              + " to java.util.DoubleSummaryStatistics");
+  private static final String SUCCESS_EXPECTED_RESULT =
+      StringUtils.lines(
           "2", "1", "42", "42", "42", "1", "42", "42", "42", "1", "42.0", "42.0", "42.0");
   private static Path CUSTOM_LIB;
 
@@ -105,41 +115,58 @@
     }
 
     private static void realTest() {
-      System.out.println("foo".subSequence(0, 2).codePoints().summaryStatistics().getCount());
+      try {
+        System.out.println("foo".subSequence(0, 2).codePoints().summaryStatistics().getCount());
+      } catch (Error e) {
+        System.out.println(e.getMessage());
+      }
     }
 
     public static void longTest() {
       long[] longs = new long[1];
       longs[0] = 42L;
-      LongSummaryStatistics mix =
-          CustomLibClass.mix(Arrays.stream(longs).summaryStatistics(), new LongSummaryStatistics());
-      System.out.println(mix.getCount());
-      System.out.println(mix.getMin());
-      System.out.println(mix.getMax());
-      System.out.println(mix.getSum());
+      try {
+        LongSummaryStatistics mix =
+            CustomLibClass.mix(
+                Arrays.stream(longs).summaryStatistics(), new LongSummaryStatistics());
+        System.out.println(mix.getCount());
+        System.out.println(mix.getMin());
+        System.out.println(mix.getMax());
+        System.out.println(mix.getSum());
+      } catch (Error e) {
+        System.out.println(e.getMessage());
+      }
     }
 
     public static void intTest() {
       int[] ints = new int[1];
       ints[0] = 42;
-      IntSummaryStatistics mix =
-          CustomLibClass.mix(Arrays.stream(ints).summaryStatistics(), new IntSummaryStatistics());
-      System.out.println(mix.getCount());
-      System.out.println(mix.getMin());
-      System.out.println(mix.getMax());
-      System.out.println(mix.getSum());
+      try {
+        IntSummaryStatistics mix =
+            CustomLibClass.mix(Arrays.stream(ints).summaryStatistics(), new IntSummaryStatistics());
+        System.out.println(mix.getCount());
+        System.out.println(mix.getMin());
+        System.out.println(mix.getMax());
+        System.out.println(mix.getSum());
+      } catch (Error e) {
+        System.out.println(e.getMessage());
+      }
     }
 
     public static void doubleTest() {
       double[] doubles = new double[1];
       doubles[0] = 42L;
-      DoubleSummaryStatistics mix =
-          CustomLibClass.mix(
-              Arrays.stream(doubles).summaryStatistics(), new DoubleSummaryStatistics());
-      System.out.println(mix.getCount());
-      System.out.println(mix.getMin());
-      System.out.println(mix.getMax());
-      System.out.println(mix.getSum());
+      try {
+        DoubleSummaryStatistics mix =
+            CustomLibClass.mix(
+                Arrays.stream(doubles).summaryStatistics(), new DoubleSummaryStatistics());
+        System.out.println(mix.getCount());
+        System.out.println(mix.getMin());
+        System.out.println(mix.getMax());
+        System.out.println(mix.getSum());
+      } catch (Error e) {
+        System.out.println(e.getMessage());
+      }
     }
   }