diff options
author | Stephan Herrmann | 2017-04-13 20:10:26 +0000 |
---|---|---|
committer | Stephan Herrmann | 2017-04-13 20:10:26 +0000 |
commit | cb0a7308a9e951a76867f8a7170d00b125238fe5 (patch) | |
tree | 183d30e3ba3dd494287940f8b53e1ac3b9998a6c | |
parent | d48b999987f75582ae3625ee8d282a55891032ac (diff) | |
download | eclipse.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.java | 56 |
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"); + } } |