diff options
author | ssankaran | 2014-02-07 04:20:37 +0000 |
---|---|---|
committer | ssankaran | 2014-02-07 04:20:37 +0000 |
commit | d2f1b4fec195182862080cd06483547e8cdf0d8e (patch) | |
tree | ba574a34d40ac514c75e4e83b90e5f4021fc71f6 /org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java | |
parent | 55d39504efb3d0b23ce8f4487f5528fe899ca35d (diff) | |
download | eclipse.jdt.core-d2f1b4fec195182862080cd06483547e8cdf0d8e.tar.gz eclipse.jdt.core-d2f1b4fec195182862080cd06483547e8cdf0d8e.tar.xz eclipse.jdt.core-d2f1b4fec195182862080cd06483547e8cdf0d8e.zip |
junit for Bug 426542 - [1.8] Most specific method not picked when one
method has intersection type as type parameter
Diffstat (limited to 'org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java')
-rw-r--r-- | org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java index 6800c9a73b..6ba7b0c9b0 100644 --- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java +++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest.java @@ -3999,5 +3999,48 @@ public void testBug427438c3() { "The serializable class A does not declare a static final serialVersionUID field of type long\n" + "----------\n"); } +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=426542, [1.8] Most specific method not picked when one method has intersection type as type parameter +public void test426542() { + if (this.complianceLevel == ClassFileConstants.JDK1_8) + return; + runNegativeTest( + new String[] { + "X.java", + "import java.util.List;\n" + + "public class X {\n" + + "\n" + + " public static void main() {\n" + + + " List<Object> list = null;\n" + + " Object o = null;\n" + + + " genericMethod(list, genericClassTransformer(genericClassFactory(o)));\n" + + + " genericMethod(list, genericClassFactory(o)); // works\n" + + + " GenericClass<Iterable<? super Object>> tempVariable = genericClassTransformer(genericClassFactory(o));\n" + + + " GenericClass<Iterable<? super Object>> tempVariable2 = genericClassFactory(o); // works\n" + + + " }\n" + + + " private static <T> void genericMethod(T param1, GenericClass<? super T> param2) {\n" + + " throw new UnsupportedOperationException();\n" + + " }\n" + + + " public static <T> GenericClass<Iterable<? super T>> genericClassFactory(T item) {\n" + + " throw new UnsupportedOperationException();\n" + + " }\n" + + + " public static <T> GenericClass<T> genericClassTransformer(GenericClass<T> matcher) {\n" + + " throw new UnsupportedOperationException();\n" + + " }\n" + + + " private static class GenericClass<T> {\n" + + " }\n" + + "}\n" + }, + ""); +} } |