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