Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2017-04-13 20:10:26 +0000
committerStephan Herrmann2017-04-13 20:10:26 +0000
commitcb0a7308a9e951a76867f8a7170d00b125238fe5 (patch)
tree183d30e3ba3dd494287940f8b53e1ac3b9998a6c
parentd48b999987f75582ae3625ee8d282a55891032ac (diff)
downloadeclipse.jdt.core-cb0a7308a9e951a76867f8a7170d00b125238fe5.tar.gz
eclipse.jdt.core-cb0a7308a9e951a76867f8a7170d00b125238fe5.tar.xz
eclipse.jdt.core-cb0a7308a9e951a76867f8a7170d00b125238fe5.zip
Bug 494733: [compiler] Wildcard type information lost causes invalidI20170413-2000
assignment - tests Change-Id: If285873edb4909663d81b8218ad00ff4194b17c1
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_8.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_8.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_8.java
index 62a2cd055d..5345775d7d 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_8.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_8.java
@@ -8109,4 +8109,60 @@ public void testBug508834_comment0() {
"}\n"
});
}
+
+ public void testBug494733_comment0() {
+ runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.*;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " List<Integer> integerList = new ArrayList<>();\n" +
+ " Set<List<Number>> numbetListSet = Collections.singleton(toWildcardGeneric(integerList));\n" +
+ " numbetListSet.iterator().next().add(new Float(1.0));\n" +
+ " Integer i = integerList.get(0); // Throws ClassCastException\n" +
+ " }\n" +
+ " \n" +
+ " static <T> List<? extends T> toWildcardGeneric(List<T> l) {\n" +
+ " return l;\n" +
+ " }\n" +
+ "}\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 5)\n" +
+ " Set<List<Number>> numbetListSet = Collections.singleton(toWildcardGeneric(integerList));\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Type mismatch: cannot convert from Set<List<Integer>> to Set<List<Number>>\n" +
+ "----------\n");
+ }
+
+ public void testBug494733_comment1() {
+ runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.*;\n" +
+ "public class X {\n" +
+ "public static void main(String[] args) {\n" +
+ " List<Integer> integerList = new ArrayList<>();\n" +
+ " List<Object> objectList = id(toWildcardGeneric(integerList));\n" +
+ " objectList.add(\"Woo?\");\n" +
+ " Integer i = integerList.get(0);\n" +
+ "}\n" +
+ "\n" +
+ "static <T> T id(T o) {\n" +
+ " return o;\n" +
+ "}\n" +
+ "\n" +
+ "static <T> List<? extends T> toWildcardGeneric(List<T> l) {\n" +
+ " return l;\n" +
+ "}\n" +
+ "}\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 5)\n" +
+ " List<Object> objectList = id(toWildcardGeneric(integerList));\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Type mismatch: cannot convert from List<Integer> to List<Object>\n" +
+ "----------\n");
+ }
}

Back to the top