diff options
author | Stephan Herrmann | 2021-04-15 13:29:59 +0000 |
---|---|---|
committer | Stephan Herrmann | 2021-04-22 17:36:33 +0000 |
commit | faafc0ab6cd99562ebbe9577db2435ece4750ebd (patch) | |
tree | f7b206b4c35c1867c1921b1ee92c7b6602978203 | |
parent | 9b8a5c0547986f822224e81d34bd9e666f4aa243 (diff) | |
download | eclipse.jdt.core-faafc0ab6cd99562ebbe9577db2435ece4750ebd.tar.gz eclipse.jdt.core-faafc0ab6cd99562ebbe9577db2435ece4750ebd.tar.xz eclipse.jdt.core-faafc0ab6cd99562ebbe9577db2435ece4750ebd.zip |
Bug 532366 - Autocompletion not available in Enum constructors
Change-Id: Iee81b160c1d671cf8fcb812d9e629d68006b5684
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/179390
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Stephan Herrmann <stephan.herrmann@berlin.de>
2 files changed, 26 insertions, 1 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java index a63483aae8..8dc635bc1e 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java @@ -14647,4 +14647,29 @@ public void test565386() throws JavaModelException { assertTrue(requestor.getResults().equals("")); } +public void testBug532366() throws Exception { + this.workingCopies = new ICompilationUnit[2]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src/test/Color.java", + "package test;\n" + + "public enum Color {\n" + + " GREEN, BLUE;\n" + + "}" + ); + this.workingCopies[1] = getWorkingCopy( + "/Completion/src/test/Foo.java", + "package test;\n" + + "public enum Foo {\n" + + " Bar(Color.G /* Ctrl+space and nothing happens here */);\n" + + " Foo(Color color) {}\n" + + "}\n"); + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, true, true, true, true, true); + requestor.allowAllRequiredProposals(); + String str = this.workingCopies[1].getSource(); + String completeBehind = "Color.G"; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[1].codeComplete(cursorLocation, requestor, this.wcOwner); + assertEquals("GREEN[FIELD_REF]{GREEN, Ltest.Color;, Ltest.Color;, null, null, GREEN, null, replace[43, 44], token[43, 44], 81}", + requestor.getResults()); +} } diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java index f03b530651..6d55724ed6 100644 --- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java +++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java @@ -4110,7 +4110,7 @@ protected void consumeToken(int token) { && this.identifierStack[this.identifierPtr] == assistIdentifier() && this.currentElement == null && (!isIndirectlyInsideLambdaExpression() || isIndirectlyInsideLambdaBlock()) // not inside lambda unless inside its block - && (isIndirectlyInsideFieldInitialization() || isIndirectlyInsideEnumConstantnitialization())) { + && isIndirectlyInsideFieldInitialization()) { // enum initializers indeed need more context this.scanner.eofPosition = this.cursorLocation < Integer.MAX_VALUE ? this.cursorLocation+1 : this.cursorLocation; } if (token == TokenNameimport) { |