### 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.76 diff -u -r1.76 CompletionTests_1_5.java --- src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 16 Nov 2006 12:18:19 -0000 1.76 +++ src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java 20 Nov 2006 10:45:28 -0000 @@ -9308,6 +9308,35 @@ "compareTo[METHOD_REF]{compareTo(), Ltest.ComparableTest;, (!*)I, compareTo, (t), " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED) + "}", requestor.getResults()); } +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154993 +public void test0297() throws JavaModelException { + this.workingCopies = new ICompilationUnit[2]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src3/test/Test.java", + "package test;\n" + + "public class Test {\n" + + " String description = \"Some description\";\n" + + " @Description(this.description)\n" + + " public void method() {\n" + + " }"); + + this.workingCopies[1] = getWorkingCopy( + "/Completion/src3/test/Description.java", + "package test;\n" + + "public @interface Description {\n" + + " String value();\n" + + "}"); + + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); + String str = this.workingCopies[0].getSource(); + String completeBehind = "this."; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); + + assertResults( + "", + requestor.getResults()); +} //https://bugs.eclipse.org/bugs/show_bug.cgi?id=153130 public void testEC001() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; #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.309 diff -u -r1.309 CompletionEngine.java --- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 16 Nov 2006 12:18:15 -0000 1.309 +++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 20 Nov 2006 10:45:31 -0000 @@ -1147,22 +1147,24 @@ insideTypeAnnotation); } } else { - if (!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { - findKeywords(this.completionToken, new char[][]{Keywords.NEW}, false, false); + if (!access.isInsideAnnotation) { + if (!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { + findKeywords(this.completionToken, new char[][]{Keywords.NEW}, false, false); + } + + findFieldsAndMethods( + this.completionToken, + ((TypeBinding) qualifiedBinding).capture(scope, access.receiver.sourceEnd), + scope, + access, + scope, + false, + access.receiver instanceof SuperReference, + null, + null, + null, + false); } - - findFieldsAndMethods( - this.completionToken, - ((TypeBinding) qualifiedBinding).capture(scope, access.receiver.sourceEnd), - scope, - access, - scope, - false, - access.receiver instanceof SuperReference, - null, - null, - null, - false); } } else if (astNode instanceof CompletionOnMessageSend) { Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnMemberAccess.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnMemberAccess.java,v retrieving revision 1.22 diff -u -r1.22 CompletionOnMemberAccess.java --- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnMemberAccess.java 12 Oct 2006 09:21:42 -0000 1.22 +++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnMemberAccess.java 20 Nov 2006 10:45:31 -0000 @@ -37,9 +37,12 @@ public class CompletionOnMemberAccess extends FieldReference { - public CompletionOnMemberAccess(char[] source, long pos) { + public boolean isInsideAnnotation; + + public CompletionOnMemberAccess(char[] source, long pos, boolean isInsideAnnotation) { super(source, pos); + this.isInsideAnnotation = isInsideAnnotation; } public StringBuffer printExpression(int indent, StringBuffer output) { Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java,v retrieving revision 1.165 diff -u -r1.165 CompletionParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 19 Nov 2006 19:47:54 -0000 1.165 +++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 20 Nov 2006 10:45:32 -0000 @@ -3705,7 +3705,7 @@ private void pushCompletionOnMemberAccessOnExpressionStack(boolean isSuperAccess) { char[] source = identifierStack[identifierPtr]; long pos = identifierPositionStack[identifierPtr--]; - CompletionOnMemberAccess fr = new CompletionOnMemberAccess(source, pos); + CompletionOnMemberAccess fr = new CompletionOnMemberAccess(source, pos, isInsideAnnotation()); this.assistNode = fr; this.lastCheckPoint = fr.sourceEnd + 1; identifierLengthPtr--;