Relands "Remove JDK8 alternative 3 file"
This reverts commit c8f6f0f5e6616500cdcda962d3189b573fa0d3c6.
Change-Id: Ie1f12504c219711ce103a55420a1e9175b93e14a
diff --git a/src/library_desugar/desugar_jdk_libs_alternative_3.json b/src/library_desugar/desugar_jdk_libs_alternative_3.json
deleted file mode 100644
index 2b0ffd9..0000000
--- a/src/library_desugar/desugar_jdk_libs_alternative_3.json
+++ /dev/null
@@ -1,254 +0,0 @@
-{
- "configuration_format_version": 3,
- "group_id" : "com.tools.android",
- "artifact_id" : "desugar_jdk_libs_alternative_3",
- "version": "1.2.1",
- "required_compilation_api_level": 26,
- "synthesized_library_classes_package_prefix": "j$.",
- "support_all_callbacks_from_library": false,
- "common_flags": [
- {
- "api_level_below_or_equal": 25,
- "wrapper_conversion": [
- "java.time.Clock"
- ]
- },
- {
- "api_level_below_or_equal": 23,
- "wrapper_conversion": [
- "java.util.PrimitiveIterator$OfDouble",
- "java.util.PrimitiveIterator$OfInt",
- "java.util.PrimitiveIterator$OfLong",
- "java.util.Spliterator",
- "java.util.Spliterator$OfDouble",
- "java.util.Spliterator$OfInt",
- "java.util.Spliterator$OfLong",
- "java.util.Spliterator$OfPrimitive",
- "java.util.function.BiConsumer",
- "java.util.function.BiFunction",
- "java.util.function.BiPredicate",
- "java.util.function.BinaryOperator",
- "java.util.function.Consumer",
- "java.util.function.DoubleBinaryOperator",
- "java.util.function.DoubleConsumer",
- "java.util.function.DoubleFunction",
- "java.util.function.DoublePredicate",
- "java.util.function.DoubleToIntFunction",
- "java.util.function.DoubleToLongFunction",
- "java.util.function.DoubleUnaryOperator",
- "java.util.function.Function",
- "java.util.function.IntBinaryOperator",
- "java.util.function.IntConsumer",
- "java.util.function.IntFunction",
- "java.util.function.IntPredicate",
- "java.util.function.IntToDoubleFunction",
- "java.util.function.IntToLongFunction",
- "java.util.function.IntUnaryOperator",
- "java.util.function.LongBinaryOperator",
- "java.util.function.LongConsumer",
- "java.util.function.LongFunction",
- "java.util.function.LongPredicate",
- "java.util.function.LongToDoubleFunction",
- "java.util.function.LongToIntFunction",
- "java.util.function.LongUnaryOperator",
- "java.util.function.ObjDoubleConsumer",
- "java.util.function.ObjIntConsumer",
- "java.util.function.ObjLongConsumer",
- "java.util.function.Predicate",
- "java.util.function.Supplier",
- "java.util.function.ToDoubleFunction",
- "java.util.function.ToIntFunction",
- "java.util.function.ToLongFunction",
- "java.util.function.UnaryOperator",
- "java.util.stream.BaseStream",
- "java.util.stream.Collector",
- "java.util.stream.DoubleStream",
- "java.util.stream.IntStream",
- "java.util.stream.LongStream",
- "java.util.stream.Stream"
- ]
- }
- ],
- "library_flags": [
- {
- "api_level_below_or_equal": 25,
- "rewrite_prefix": {
- "j$.time.": "java.time.",
- "java.time.": "j$.time.",
- "java.util.Desugar": "j$.util.Desugar"
- },
- "retarget_lib_member": {
- "java.util.Date#toInstant": "java.util.DesugarDate",
- "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
- "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
- },
- "custom_conversion": {
- "java.time.ZonedDateTime": "java.time.TimeConversions",
- "java.time.LocalDate": "java.time.TimeConversions",
- "java.time.Duration": "java.time.TimeConversions",
- "java.time.ZoneId": "java.time.TimeConversions",
- "java.time.MonthDay": "java.time.TimeConversions",
- "java.time.Instant": "java.time.TimeConversions"
- }
- },
- {
- "api_level_below_or_equal": 23,
- "rewrite_prefix": {
- "j$.util.Optional": "java.util.Optional",
- "j$.util.LongSummaryStatistics": "java.util.LongSummaryStatistics",
- "j$.util.IntSummaryStatistics": "java.util.IntSummaryStatistics",
- "j$.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatistics",
- "java.util.stream.": "j$.util.stream.",
- "java.util.function.": "j$.util.function.",
- "java.util.Comparators": "j$.util.Comparators",
- "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics",
- "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics",
- "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics",
- "java.util.Objects": "j$.util.Objects",
- "java.util.Optional": "j$.util.Optional",
- "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator",
- "java.util.SortedSet$1": "j$.util.SortedSet$1",
- "java.util.Spliterator": "j$.util.Spliterator",
- "java.util.StringJoiner": "j$.util.StringJoiner",
- "java.util.Tripwire": "j$.util.Tripwire",
- "java.util.concurrent.DesugarUnsafe": "j$.util.concurrent.DesugarUnsafe",
- "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom",
- "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic",
- "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap",
- "java.io.DesugarBufferedReader": "j$.io.DesugarBufferedReader",
- "java.io.UncheckedIOException": "j$.io.UncheckedIOException"
- },
- "retarget_lib_member": {
- "java.util.Arrays#stream": "java.util.DesugarArrays",
- "java.util.Arrays#spliterator": "java.util.DesugarArrays",
- "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet",
- "java.io.BufferedReader#lines": "java.io.DesugarBufferedReader"
- },
- "dont_rewrite": [
- "java.util.Iterator#remove"
- ],
- "emulate_interface": {
- "java.util.Map$Entry": "j$.util.Map$Entry",
- "java.util.Collection": "j$.util.Collection",
- "java.util.Map": "j$.util.Map",
- "java.util.Iterator": "j$.util.Iterator",
- "java.util.Comparator": "j$.util.Comparator",
- "java.util.List": "j$.util.List",
- "java.util.SortedSet": "j$.util.SortedSet",
- "java.util.Set": "j$.util.Set",
- "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap"
- },
- "custom_conversion": {
- "java.util.Optional": "java.util.OptionalConversions",
- "java.util.OptionalDouble": "java.util.OptionalConversions",
- "java.util.OptionalInt": "java.util.OptionalConversions",
- "java.util.OptionalLong": "java.util.OptionalConversions",
- "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions",
- "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions",
- "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions"
- }
- }
- ],
- "program_flags": [
- {
- "api_level_below_or_equal": 25,
- "rewrite_prefix": {
- "java.time.": "j$.time.",
- "java.util.Desugar": "j$.util.Desugar"
- },
- "retarget_lib_member": {
- "java.util.Calendar#toInstant": "java.util.DesugarCalendar",
- "java.util.Date#from": "java.util.DesugarDate",
- "java.util.Date#toInstant": "java.util.DesugarDate",
- "java.util.GregorianCalendar#from": "java.util.DesugarGregorianCalendar",
- "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
- "java.util.TimeZone#getTimeZone": "java.util.DesugarTimeZone",
- "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
- },
- "custom_conversion": {
- "java.time.ZonedDateTime": "java.time.TimeConversions",
- "java.time.LocalDate": "java.time.TimeConversions",
- "java.time.Duration": "java.time.TimeConversions",
- "java.time.ZoneId": "java.time.TimeConversions",
- "java.time.MonthDay": "java.time.TimeConversions",
- "java.time.Instant": "java.time.TimeConversions"
- }
- },
- {
- "api_level_below_or_equal": 23,
- "rewrite_prefix": {
- "java.util.stream.": "j$.util.stream.",
- "java.util.function.": "j$.util.function.",
- "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics",
- "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics",
- "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics",
- "java.util.Objects": "j$.util.Objects",
- "java.util.Optional": "j$.util.Optional",
- "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator",
- "java.util.Spliterator": "j$.util.Spliterator",
- "java.util.StringJoiner": "j$.util.StringJoiner",
- "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom",
- "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic",
- "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap",
- "java.io.UncheckedIOException": "j$.io.UncheckedIOException"
- },
- "retarget_lib_member": {
- "java.util.Arrays#stream": "java.util.DesugarArrays",
- "java.util.Arrays#spliterator": "java.util.DesugarArrays",
- "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet",
- "java.util.concurrent.atomic.AtomicInteger#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicInteger",
- "java.util.concurrent.atomic.AtomicInteger#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger",
- "java.util.concurrent.atomic.AtomicInteger#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicInteger",
- "java.util.concurrent.atomic.AtomicInteger#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger",
- "java.util.concurrent.atomic.AtomicLong#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicLong",
- "java.util.concurrent.atomic.AtomicLong#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong",
- "java.util.concurrent.atomic.AtomicLong#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicLong",
- "java.util.concurrent.atomic.AtomicLong#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong",
- "java.util.concurrent.atomic.AtomicReference#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicReference",
- "java.util.concurrent.atomic.AtomicReference#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference",
- "java.util.concurrent.atomic.AtomicReference#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicReference",
- "java.util.concurrent.atomic.AtomicReference#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference",
- "java.util.Collections#synchronizedMap": "java.util.DesugarCollections",
- "java.util.Collections#synchronizedSortedMap": "java.util.DesugarCollections",
- "java.io.BufferedReader#lines": "java.io.DesugarBufferedReader"
- },
- "dont_rewrite": [
- "java.util.Iterator#remove"
- ],
- "emulate_interface": {
- "java.util.Map$Entry": "j$.util.Map$Entry",
- "java.util.Collection": "j$.util.Collection",
- "java.util.Map": "j$.util.Map",
- "java.util.Iterator": "j$.util.Iterator",
- "java.util.Comparator": "j$.util.Comparator",
- "java.util.List": "j$.util.List",
- "java.util.SortedSet": "j$.util.SortedSet",
- "java.util.Set": "j$.util.Set",
- "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap"
- },
- "custom_conversion": {
- "java.util.Optional": "java.util.OptionalConversions",
- "java.util.OptionalDouble": "java.util.OptionalConversions",
- "java.util.OptionalInt": "java.util.OptionalConversions",
- "java.util.OptionalLong": "java.util.OptionalConversions",
- "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions",
- "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions",
- "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions"
- }
- }
- ],
- "shrinker_config": [
- "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$TreeBin { int lockState; }",
- "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap { int sizeCtl; int transferIndex; long baseCount; int cellsBusy; }",
- "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$CounterCell { long value; }",
- "-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); public static final !synthetic <fields>; }",
- "-keeppackagenames j$",
- "-keepclassmembers class j$.util.IntSummaryStatistics { long count; long sum; int min; int max; }",
- "-keepclassmembers class j$.util.LongSummaryStatistics { long count; long sum; long min; long max; }",
- "-keepclassmembers class j$.util.DoubleSummaryStatistics { long count; double sum; double min; double max; }",
- "-keepattributes Signature",
- "-keepattributes EnclosingMethod",
- "-keepattributes InnerClasses",
- "-dontwarn sun.misc.Unsafe"
- ]
-}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
index 6d3a0d3..f79b585 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
@@ -84,6 +84,9 @@
@Test
public void testBufferedReaderD8Cf() throws Exception {
+ Assume.assumeTrue(
+ "The alternative 3 configuration is available only in JDK 11 desugared library.",
+ isJDK11DesugaredLibrary());
KeepRuleConsumer keepRuleConsumer = createKeepRuleConsumer(parameters);
// Use D8 to desugar with Java classfile output.
Path jar =
@@ -140,6 +143,9 @@
@Test
public void testBufferedReaderD8() throws Exception {
Assume.assumeTrue(parameters.getRuntime().isDex());
+ Assume.assumeTrue(
+ "The alternative 3 configuration is available only in JDK 11 desugared library.",
+ isJDK11DesugaredLibrary());
KeepRuleConsumer keepRuleConsumer = createKeepRuleConsumer(parameters);
testForD8()
.addLibraryFiles(getLibraryFile())
@@ -166,6 +172,9 @@
@Test
public void testBufferedReaderR8() throws Exception {
Assume.assumeTrue(parameters.getRuntime().isDex());
+ Assume.assumeTrue(
+ "The alternative 3 configuration is available only in JDK 11 desugared library.",
+ isJDK11DesugaredLibrary());
KeepRuleConsumer keepRuleConsumer = createKeepRuleConsumer(parameters);
testForR8(parameters.getBackend())
.addLibraryFiles(getLibraryFile())
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
index c21b7ea..3209290 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
@@ -78,6 +78,11 @@
public ObjectsTest(TestParameters parameters, boolean libraryDesugarJavaUtilObjects) {
this.parameters = parameters;
+ if (libraryDesugarJavaUtilObjects) {
+ Assume.assumeTrue(
+ "The alternative 3 configuration is available only in JDK 11 desugared library.",
+ isJDK11DesugaredLibrary());
+ }
this.libraryDesugarJavaUtilObjects = libraryDesugarJavaUtilObjects;
this.androidJar =
ToolHelper.getAndroidJar(