Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2017-06-06 14:23:56 +0000
committerStephan Herrmann2017-06-06 14:23:56 +0000
commit8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19 (patch)
tree2b674ab234c55a7c710e347431c075352f571951
parentb94648528b25ab8d6d850fb8cdc79df9999a64c3 (diff)
downloadorg.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.tar.gz
org.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.tar.xz
org.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.zip
update jdt.core to S4_7_0_RC3
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java68
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java4
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java14
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java1
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java1
5 files changed, 85 insertions, 3 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java
index 46d657fb5..ec1125359 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java
@@ -2982,4 +2982,72 @@ public void test515809() throws JavaModelException {
"expectedTypesKeys=null\n" +
"completion token location={STATEMENT_START}", requestor.getContext());
}
+//https://bugs.eclipse.org/485492
+public void test485492a() throws JavaModelException {
+ this.workingCopies = new ICompilationUnit[1];
+ this.workingCopies[0] = getWorkingCopy(
+ "/Completion/src/Foo.java",
+ "import java.util.function.Function;\n" +
+ "public enum Foo {\n" +
+ " BAR((z) -> {\n" +
+ " z.has\n" +
+ " return z;\n" +
+ " });\n" +
+ " Foo(Function<String, String> func) { }\n" +
+ "}\n");
+
+ CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, true, true, false);
+ requestor.allowAllRequiredProposals();
+ String str = this.workingCopies[0].getSource();
+ String completeBehind = "z.has";
+ int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
+ this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
+ assertResults(
+ "hashCode[METHOD_REF]{hashCode(), Ljava.lang.String;, ()I, null, null, hashCode, null, [71, 74], 60}",
+ requestor.getResults());
+}
+public void test485492b() throws JavaModelException {
+ this.workingCopies = new ICompilationUnit[1];
+ this.workingCopies[0] = getWorkingCopy(
+ "/Completion/src/Foo.java",
+ "import java.util.function.Function;\n" +
+ "public enum Foo {\n" +
+ " BAR((zilch) -> {\n" +
+ " return zil;\n" +
+ " });\n" +
+ " Foo(Function<String, String> func) { }\n" +
+ "}\n");
+
+ CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, true, true, false);
+ requestor.allowAllRequiredProposals();
+ String str = this.workingCopies[0].getSource();
+ String completeBehind = "return zil";
+ int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
+ this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
+ assertResults(
+ "zilch[LOCAL_VARIABLE_REF]{zilch, null, Ljava.lang.String;, null, null, zilch, null, [81, 84], 52}",
+ requestor.getResults());
+}
+public void test485492c() throws JavaModelException {
+ this.workingCopies = new ICompilationUnit[1];
+ this.workingCopies[0] = getWorkingCopy(
+ "/Completion/src/Foo.java",
+ "import java.util.function.Function;\n" +
+ "public enum Foo {\n" +
+ " BAR((z) -> {\n" +
+ " return z.has;\n" +
+ " });\n" +
+ " Foo(Function<String, String> func) { }\n" +
+ "}\n");
+
+ CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, true, true, false);
+ requestor.allowAllRequiredProposals();
+ String str = this.workingCopies[0].getSource();
+ String completeBehind = "z.has";
+ int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
+ this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
+ assertResults(
+ "hashCode[METHOD_REF]{hashCode(), Ljava.lang.String;, ()I, null, null, hashCode, null, [79, 82], 60}",
+ 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 3cd98309f..195942f6e 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
@@ -3894,7 +3894,7 @@ protected void consumeToken(int token) {
int previous = this.previousToken;
int prevIdentifierPtr = this.previousIdentifierPtr;
- if (isInsideMethod() || isInsideFieldInitialization() || isInsideAnnotation()) {
+ if (isInsideMethod() || isInsideFieldInitialization() || isInsideAnnotation() || isInsideEnumConstantnitialization()) {
switch(token) {
case TokenNameLPAREN:
if(previous == TokenNameIdentifier &&
@@ -3954,7 +3954,7 @@ protected void consumeToken(int token) {
}
// if in a method or if in a field initializer
- if (isInsideMethod() || isInsideFieldInitialization() || isInsideAttributeValue()) {
+ if (isInsideMethod() || isInsideFieldInitialization() || isInsideAttributeValue() || isInsideEnumConstantnitialization()) {
switch (token) {
case TokenNameDOT:
switch (previous) {
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java
index d8823dfba..6ba013b8b 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java
@@ -1107,7 +1107,7 @@ protected void consumeToken(int token) {
}
// register message send selector only if inside a method or if looking at a field initializer
// and if the current token is an open parenthesis
- if (isInsideMethod() || isInsideFieldInitialization() || isInsideAttributeValue()) {
+ if (isInsideMethod() || isInsideFieldInitialization() || isInsideAttributeValue() || isInsideEnumConstantnitialization()) {
switch (token) {
case TokenNameLPAREN :
this.bracketDepth++;
@@ -1641,6 +1641,18 @@ protected boolean isInsideFieldInitialization(){
case K_TYPE_DELIMITER : return false;
case K_METHOD_DELIMITER : return false;
case K_FIELD_INITIALIZER_DELIMITER :
+ return true;
+ }
+ i--;
+ }
+ return false;
+}
+protected boolean isInsideEnumConstantnitialization(){
+ int i = this.elementPtr;
+ while(i > -1) {
+ switch (this.elementKindStack[i]) {
+ case K_TYPE_DELIMITER : return false;
+ case K_METHOD_DELIMITER : return false;
case K_ENUM_CONSTANT_DELIMITER :
return true;
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
index 818172f28..cbccd07ac 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
@@ -403,6 +403,7 @@ public class Database {
wasCanceled = flush() || wasCanceled;
}
this.memoryUsage.refresh();
+ this.fHeaderChunk.makeDirty();
return wasCanceled;
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
index cbc04ff0d..0eeeb3c3c 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
@@ -1061,6 +1061,7 @@ public final class Indexer {
this.nd.acquireWriteLock(subMonitor.split(1));
try {
this.nd.clear(subMonitor.split(2));
+ this.nd.getDB().flush();
} finally {
this.nd.releaseWriteLock();
}

Back to the top