### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java,v retrieving revision 1.99 diff -u -r1.99 CompletionTests_1_5.java --- src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 9 Apr 2008 14:25:54 -0000 1.99 +++ src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 14 Apr 2008 09:21:57 -0000 @@ -12844,6 +12844,76 @@ JavaCore.setOptions(oldOptions); } } +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=178982 +public void testONLY_FavoriteImports032() throws JavaModelException { + this.oldOptions = JavaCore.getOptions(); + + try { + Hashtable options = new Hashtable(this.oldOptions); + options.put(JavaCore.CODEASSIST_SUGGEST_STATIC_IMPORTS, JavaCore.ENABLED); + JavaCore.setOptions(options); + + this.workingCopies = new ICompilationUnit[3]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src3/test/Test.java", + "package test;\n" + + "public class Test extends Test2 {\n" + + " public void method() {\n" + + " int zelement1\n" + + " float zelement2\n" + + " double zelement3\n" + + " foo(0, zelement);\n" + + " }\n" + + "}"); + + this.workingCopies[1] = getWorkingCopy( + "/Completion/src3/test/Test2.java", + "package test;\n" + + "public class Test2 {\n" + + " public void foo(double i, double j) {}\n" + + " public void foo(float i, float j) {}\n" + + " public void foo(int i, int j) {}\n" + + "}"); + + this.workingCopies[2] = getWorkingCopy( + "/Completion/src3/test/p/ZZZ.java", + "package test.p;\n" + + "public class ZZZ {\n" + + " public static int zelement4(){}\n" + + " public static float zelement5(){}\n" + + " public static double zelement6(){}\n" + + "}"); + + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true); + requestor.allowAllRequiredProposals(); + requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"}); + + String str = this.workingCopies[0].getSource(); + String completeBehind = "zelement"; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); + + int relevance1 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED; + int relevance2 = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED; + int start1 = str.lastIndexOf("zelement") + "".length(); + int end1 = start1 + "zelement".length(); + int start2 = str.lastIndexOf("public class"); + int end2 = start2 + "".length(); + assertResults( + "zelement4[METHOD_REF]{zelement4(), Ltest.p.ZZZ;, ()I, zelement4, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" + + " zelement4[METHOD_IMPORT]{import static test.p.ZZZ.zelement4;\n, Ltest.p.ZZZ;, ()I, zelement4, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+ + "zelement5[METHOD_REF]{zelement5(), Ltest.p.ZZZ;, ()F, zelement5, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" + + " zelement5[METHOD_IMPORT]{import static test.p.ZZZ.zelement5;\n, Ltest.p.ZZZ;, ()F, zelement5, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+ + "zelement6[METHOD_REF]{zelement6(), Ltest.p.ZZZ;, ()D, zelement6, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" + + " zelement6[METHOD_IMPORT]{import static test.p.ZZZ.zelement6;\n, Ltest.p.ZZZ;, ()D, zelement6, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+ + "zelement1[LOCAL_VARIABLE_REF]{zelement1, null, I, zelement1, null, ["+start1+", "+end1+"], "+(relevance2)+"}\n" + + "zelement2[LOCAL_VARIABLE_REF]{zelement2, null, F, zelement2, null, ["+start1+", "+end1+"], "+(relevance2)+"}\n" + + "zelement3[LOCAL_VARIABLE_REF]{zelement3, null, D, zelement3, null, ["+start1+", "+end1+"], "+(relevance2)+"}", + requestor.getResults()); + } finally { + JavaCore.setOptions(oldOptions); + } +} //https://bugs.eclipse.org/bugs/show_bug.cgi?id=162865 public void testNameWithUnresolvedReferences001() throws JavaModelException { this.workingCopies = new ICompilationUnit[2]; #P org.eclipse.jdt.core Index: codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java,v retrieving revision 1.363 diff -u -r1.363 CompletionEngine.java --- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 9 Apr 2008 14:26:30 -0000 1.363 +++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 14 Apr 2008 09:22:10 -0000 @@ -6660,21 +6660,30 @@ } private int computeRelevanceForExpectingType(TypeBinding proposalType){ if(this.expectedTypes != null && proposalType != null) { + int relevance = 0; for (int i = 0; i <= this.expectedTypesPtr; i++) { - int relevance = R_EXPECTED_TYPE; - if(CharOperation.equals(this.expectedTypes[i].qualifiedPackageName(), proposalType.qualifiedPackageName()) && - CharOperation.equals(this.expectedTypes[i].qualifiedSourceName(), proposalType.qualifiedSourceName())) { - relevance = R_EXACT_EXPECTED_TYPE; - } if((this.expectedTypesFilter & SUBTYPE) != 0 - && proposalType.isCompatibleWith(this.expectedTypes[i])) { - return relevance; + && proposalType.isCompatibleWith(this.expectedTypes[i])) { + + if(CharOperation.equals(this.expectedTypes[i].qualifiedPackageName(), proposalType.qualifiedPackageName()) && + CharOperation.equals(this.expectedTypes[i].qualifiedSourceName(), proposalType.qualifiedSourceName())) { + return R_EXACT_EXPECTED_TYPE; + } + + relevance = R_EXPECTED_TYPE; } if((this.expectedTypesFilter & SUPERTYPE) != 0 - && this.expectedTypes[i].isCompatibleWith(proposalType)) { - return relevance; + && this.expectedTypes[i].isCompatibleWith(proposalType)) { + + if(CharOperation.equals(this.expectedTypes[i].qualifiedPackageName(), proposalType.qualifiedPackageName()) && + CharOperation.equals(this.expectedTypes[i].qualifiedSourceName(), proposalType.qualifiedSourceName())) { + return R_EXACT_EXPECTED_TYPE; + } + + relevance = R_EXPECTED_TYPE; } } + return relevance; } return 0; }