Index: compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java,v retrieving revision 1.309 diff -u -r1.309 Scope.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java 24 May 2007 14:29:32 -0000 1.309 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java 5 Jun 2007 14:29:24 -0000 @@ -2581,7 +2581,7 @@ if (oneParam.isCompatibleWith(twoParam)) { if (oneParam.leafComponentType().isRawType()) { // A#RAW is not more specific than a rawified A - if (oneParam.needsUncheckedConversion(two.original().parameters[i])) + if (oneParam.needsUncheckedConversion(two.declaringClass.isRawType() ? twoParam : two.original().parameters[i])) return false; } } else { Index: src/org/eclipse/jdt/core/tests/compiler/regression/AmbiguousMethodTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AmbiguousMethodTest.java,v retrieving revision 1.46 diff -u -r1.46 AmbiguousMethodTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/AmbiguousMethodTest.java 30 May 2007 14:55:43 -0000 1.46 +++ src/org/eclipse/jdt/core/tests/compiler/regression/AmbiguousMethodTest.java 5 Jun 2007 14:29:25 -0000 @@ -2090,59 +2090,79 @@ "----------\n" ); } +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=191029 +public void test059a() { + this.runNegativeTest( + new String[] { + "X.java", + "import java.util.TreeMap;\n" + + "class X {\n" + + " void test(TreeMap tm) {\n" + + " TreeMap copy = new TreeMap(tm);\n" + + " }\n" + + "}" + }, + "----------\n" + + "1. WARNING in X.java (at line 4)\n" + + " TreeMap copy = new TreeMap(tm);\n" + + " ^^^^^^^\n" + + "TreeMap is a raw type. References to generic type TreeMap should be parameterized\n" + + "----------\n" + + "2. WARNING in X.java (at line 4)\n" + + " TreeMap copy = new TreeMap(tm);\n" + + " ^^^^^^^^^^^^^^^\n" + + "Type safety: The constructor TreeMap(SortedMap) belongs to the raw type TreeMap. References to generic type TreeMap should be parameterized\n" + + "----------\n" + + "3. WARNING in X.java (at line 4)\n" + + " TreeMap copy = new TreeMap(tm);\n" + + " ^^^^^^^\n" + + "TreeMap is a raw type. References to generic type TreeMap should be parameterized\n" + + "----------\n" + ); +} // https://bugs.eclipse.org/bugs/show_bug.cgi?id=189933 -public void _test060() { +public void test060() { this.runConformTest( new String[] { "X.java", "public class X {\n" + - " public void bar(K p) {\n" + - " new Y(p);\n" + - " new Y((J) p);\n" + - " new Y((I) p);\n" + - " }\n" + + " public void bar(K p) {\n" + + " new Y(p);\n" + + " new Y((J) p);\n" + + " new Y((I) p);\n" + + " }\n" + "}\n" + "class Y {\n" + - " Y(I p) {\n" + - " }\n" + - " Y(J p) {\n" + - " }\n" + - "}\n" + - "interface I { \n" + - "}\n" + - "interface J extends I {\n" + + " Y(I p) {}\n" + + " Y(J p) {}\n" + "}\n" + - "interface K extends I, J {\n" + - "}" + "interface I {}\n" + + "interface J extends I {}\n" + + "interface K extends I, J {}" }, "" ); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=189933 // variant -public void _test061() { +public void test061() { this.runNegativeTest( new String[] { "X.java", "public class X {\n" + - " public void bar(K p) {\n" + - " new Y(p);\n" + - " new Y((J) p);\n" + - " new Y((I) p);\n" + - " }\n" + + " public void bar(K p) {\n" + + " new Y(p);\n" + + " new Y((J) p);\n" + + " new Y((I) p);\n" + + " }\n" + "}\n" + "class Y {\n" + - " Y(I p) {\n" + - " }\n" + - " Y(J p) {\n" + - " }\n" + - "}\n" + - "interface I { \n" + + " Y(I p) {}\n" + + " Y(J p) {}\n" + "}\n" + - "interface J {\n" + - "}\n" + - "interface K extends I, J {\n" + - "}" + "interface I {}\n" + + "interface J {}\n" + + "interface K extends I, J {}" }, "----------\n" + "1. ERROR in X.java (at line 3)\n" +