Add extra tests for Collection#toArray
Bug: b/266045293
Change-Id: I943bf5165f4c8a39f1e519bc5debdc99ab1b89eb
diff --git a/src/test/examplesJava11/collectiontoarray/Main.java b/src/test/examplesJava11/collectiontoarray/Main.java
index 91bbd8b..3a4cc01 100644
--- a/src/test/examplesJava11/collectiontoarray/Main.java
+++ b/src/test/examplesJava11/collectiontoarray/Main.java
@@ -7,6 +7,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.function.IntFunction;
public class Main {
public static void main(String[] args) {
@@ -16,5 +17,20 @@
// This default method was added in Android T.
String[] toArray = list.toArray(String[]::new);
System.out.println(Arrays.toString(toArray));
+
+ List<String> myList = new MyList<>();
+ myList.add("one");
+ myList.add("two");
+ // This default method was added in Android T.
+ String[] toArray2 = myList.toArray(String[]::new);
+ System.out.println(Arrays.toString(toArray2));
+ }
+
+ @SuppressWarnings("all")
+ public static class MyList<T> extends ArrayList<T> {
+ public <T> T[] toArray(IntFunction<T[]> generator) {
+ System.out.println("Override");
+ return super.toArray(generator);
+ }
}
}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/CollectionToArrayTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/CollectionToArrayTest.java
index d3d901a..6f1b750 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/CollectionToArrayTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/CollectionToArrayTest.java
@@ -4,7 +4,7 @@
package com.android.tools.r8.desugar.desugaredlibrary.jdk11;
-import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.SPECIFICATIONS_WITH_CF2CF;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11_PATH;
@@ -32,7 +32,8 @@
private static final Path INPUT_JAR =
Paths.get(ToolHelper.EXAMPLES_JAVA11_JAR_DIR + "collectiontoarray.jar");
- private static final String EXPECTED_OUTPUT = StringUtils.lines("[one, two]");
+ private static final String EXPECTED_OUTPUT =
+ StringUtils.lines("[one, two]", "Override", "[one, two]");
private static final String MAIN_CLASS = "collectiontoarray.Main";
@Parameters(name = "{0}, spec: {1}, {2}")
@@ -40,7 +41,7 @@
return buildParameters(
getTestParameters().withDexRuntimes().withAllApiLevels().build(),
ImmutableList.of(JDK11, JDK11_PATH),
- DEFAULT_SPECIFICATIONS);
+ SPECIFICATIONS_WITH_CF2CF);
}
public CollectionToArrayTest(