Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2021-04-15 13:29:59 +0000
committerStephan Herrmann2021-04-22 17:36:33 +0000
commitfaafc0ab6cd99562ebbe9577db2435ece4750ebd (patch)
treef7b206b4c35c1867c1921b1ee92c7b6602978203
parent9b8a5c0547986f822224e81d34bd9e666f4aa243 (diff)
downloadeclipse.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>
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests_1_5.java25
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java2
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) {

Back to the top