diff options
| author | Stephan Herrmann | 2021-04-27 21:49:35 +0000 |
|---|---|---|
| committer | Stephan Herrmann | 2021-04-27 21:49:35 +0000 |
| commit | bc061ab235fc554c2c5ab1a0746361f46ed36ffa (patch) | |
| tree | 406537f047d06770c9a7a59f20ade7cb3f6906d2 | |
| parent | 2191b84a942a57a5c36bf91d049e314bfb94ae2d (diff) | |
| download | eclipse.jdt.core-bc061ab235fc554c2c5ab1a0746361f46ed36ffa.tar.gz eclipse.jdt.core-bc061ab235fc554c2c5ab1a0746361f46ed36ffa.tar.xz eclipse.jdt.core-bc061ab235fc554c2c5ab1a0746361f46ed36ffa.zip | |
Bug 546097 - [content assist] Content Assist takes very long/abortsI20210428-0330I20210428-0040I20210427-1800
Change-Id: I98a95ace353826459ce8c4901fbf6afc779efa6e
| -rw-r--r-- | org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests18.java | 42 |
1 files changed, 42 insertions, 0 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 78e81d1699..99cf9552c2 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 @@ -4795,4 +4795,46 @@ public void testBug473654_comment33() throws Exception { "toString[METHOD_DECLARATION]{public String toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+overrideRelevance+"}", requestor.getResults()); } +public void testBug546097() throws Exception { + this.workingCopies = new ICompilationUnit[1]; + this.workingCopies[0] = getWorkingCopy( + "/Completion/src/TestClass.java", + "import java.util.concurrent.Callable;\n" + + "\n" + + "\n" + + "public class TestClass {\n" + + " public enum TestEnum {\n" + + " ENUM1(() -> ),\n" + + " ENUM2(() -> );\n" + + "\n" + + " private Callable<Object> callable;\n" + + "\n" + + " private TestEnum(Callable<Object> callable) {\n" + + " {\n" + + " this.callable = callable;\n" + + " }\n" + + " }\n" + + "}\n"); + + CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); + requestor.allowAllRequiredProposals(); + + String str = this.workingCopies[0].getSource(); + String completeBehind = "ENUM1(() -> "; + int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length(); + this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner, new NullProgressMonitor()); + + int expectedTypeRelevance = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED + R_EXPECTED_TYPE; + int exactExpectedTypeRelevance = R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED + R_EXACT_EXPECTED_TYPE; + + assertResults( + "ENUM1[FIELD_REF]{ENUM1, LTestClass$TestEnum;, LTestClass$TestEnum;, ENUM1, null, "+expectedTypeRelevance+"}\n" + + "ENUM2[FIELD_REF]{ENUM2, LTestClass$TestEnum;, LTestClass$TestEnum;, ENUM2, null, "+expectedTypeRelevance+"}\n" + + "TestClass[TYPE_REF]{TestClass, , LTestClass;, null, null, "+expectedTypeRelevance+"}\n" + + "valueOf[METHOD_REF]{valueOf(), LTestClass$TestEnum;, (Ljava.lang.String;)LTestClass$TestEnum;, valueOf, (arg0), "+expectedTypeRelevance+"}\n" + + "valueOf[METHOD_REF]{valueOf(), Ljava.lang.Enum<LTestClass$TestEnum;>;, <T:Ljava.lang.Enum<TT;>;>(Ljava.lang.Class<TT;>;Ljava.lang.String;)TT;, valueOf, (arg0, arg1), "+expectedTypeRelevance+"}\n" + + "values[METHOD_REF]{values(), LTestClass$TestEnum;, ()[LTestClass$TestEnum;, values, null, "+expectedTypeRelevance+"}\n" + + "Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+exactExpectedTypeRelevance+"}", + requestor.getResults()); +} } |
