### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java,v retrieving revision 1.288 diff -u -r1.288 CompletionEngine.java --- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 24 Apr 2006 15:04:29 -0000 1.288 +++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 25 Apr 2006 13:21:43 -0000 @@ -626,6 +626,17 @@ this.knownPkgs.put(packageName, this); + char[] completion; + if(this.resolvingImports) { + if(this.resolvingStaticImports) { + completion = CharOperation.concat(packageName, new char[] { '.' }); + } else { + completion = CharOperation.concat(packageName, new char[] { '.', '*', ';' }); + } + } else { + completion = packageName; + } + int relevance = computeBaseRelevance(); relevance += computeRelevanceForInterestingProposal(); relevance += computeRelevanceForCaseMatching(this.qualifiedCompletionToken == null ? this.completionToken : this.qualifiedCompletionToken, packageName); @@ -639,10 +650,7 @@ CompletionProposal proposal = this.createProposal(CompletionProposal.PACKAGE_REF, this.actualCompletionPosition); proposal.setDeclarationSignature(packageName); proposal.setPackageName(packageName); - proposal.setCompletion( - this.resolvingImports - ? CharOperation.concat(packageName, new char[] { '.', '*', ';' }) - : packageName); + proposal.setCompletion(completion); proposal.setReplaceRange(this.startPosition - this.offset, this.endPosition - this.offset); proposal.setRelevance(relevance); this.requestor.accept(proposal); @@ -6846,4 +6854,4 @@ } return name; } -} +} \ No newline at end of file #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/model/CompletionTests.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests.java,v retrieving revision 1.120 diff -u -r1.120 CompletionTests.java --- src/org/eclipse/jdt/core/tests/model/CompletionTests.java 29 Mar 2006 04:03:07 -0000 1.120 +++ src/org/eclipse/jdt/core/tests/model/CompletionTests.java 25 Apr 2006 13:21:54 -0000 @@ -12369,4 +12369,57 @@ COMPLETION_PROJECT.setOptions(options); } } + +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97085 +public void testPackageStaticImport1() throws JavaModelException { + this.workingCopies = new ICompilationUnit[2]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src/test/Test.java", + "package test;"+ + "import test0.tes"+ + "public class Test {\n"+ + "}"); + + this.workingCopies[1] = getWorkingCopy( + "/Completion/src/test0/test1/X.java", + "package test0/test1;"+ + "public class X {\n"+ + "}"); + + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); + String str = this.workingCopies[0].getSource(); + String completeBehind = "test0.tes"; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); + + assertResults( + "test0.test1[PACKAGE_REF]{test0.test1.*;, test0.test1, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}", + requestor.getResults()); +} +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97085 +public void testPackageStaticImport2() throws JavaModelException { + this.workingCopies = new ICompilationUnit[2]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src/test/Test.java", + "package test;"+ + "import static test0.tes"+ + "public class Test {\n"+ + "}"); + + this.workingCopies[1] = getWorkingCopy( + "/Completion/src/test0/test1/X.java", + "package test0/test1;"+ + "public class X {\n"+ + "}"); + + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); + String str = this.workingCopies[0].getSource(); + String completeBehind = "test0.tes"; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); + + assertResults( + "test0.test1[PACKAGE_REF]{test0.test1., test0.test1, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}", + requestor.getResults()); +} } Index: src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java,v retrieving revision 1.66 diff -u -r1.66 CompletionTests_1_5.java --- src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 21 Apr 2006 15:48:26 -0000 1.66 +++ src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 25 Apr 2006 13:21:58 -0000 @@ -1901,8 +1901,8 @@ cu.codeComplete(cursorLocation, requestor, this.wcOwner); assertResults( - "test0070.p[PACKAGE_REF]{test0070.p.*;, test0070.p, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" + - "test0070[PACKAGE_REF]{test0070.*;, test0070, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED) + "}", + "test0070.p[PACKAGE_REF]{test0070.p., test0070.p, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" + + "test0070[PACKAGE_REF]{test0070., test0070, null, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED) + "}", requestor.getResults()); } finally { if(importedClass != null) {