diff options
author | Stephan Herrmann | 2017-06-06 14:23:56 +0000 |
---|---|---|
committer | Stephan Herrmann | 2017-06-06 14:23:56 +0000 |
commit | 8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19 (patch) | |
tree | 2b674ab234c55a7c710e347431c075352f571951 | |
parent | b94648528b25ab8d6d850fb8cdc79df9999a64c3 (diff) | |
download | org.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.tar.gz org.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.tar.xz org.eclipse.objectteams-8501c7fbc5f62bec7b5c3fae5dbaff0eca4aac19.zip |
update jdt.core to S4_7_0_RC3
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(); } |