From 02aaf0b6b0a1d5b60860374d769409e5a6d286cb Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 30 Oct 2010 16:18:40 +0400 Subject: [PATCH] don't autopopup with anything after Java double literals (IDEA-60505) --- .../codeInsight/completion/JavaCompletionContributor.java | 8 +++++++- .../completion/normal/NothingAfterNumericLiteral.java | 7 +++++++ .../codeInsight/completion/NormalCompletionTest.groovy | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/NothingAfterNumericLiteral.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index 16c423d0df98..522f89050784 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -23,6 +23,7 @@ import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupItem; import com.intellij.codeInsight.lookup.LookupItemUtil; import com.intellij.codeInsight.lookup.TailTypeDecorator; +import com.intellij.lang.ASTNode; import com.intellij.lang.LangBundle; import com.intellij.lang.StdLanguages; import com.intellij.openapi.actionSystem.IdeActions; @@ -177,7 +178,11 @@ public class JavaCompletionContributor extends CompletionContributor { return; } - final JavaAwareCompletionData completionData = PsiUtil.isLanguageLevel5OrHigher(lastElement) ? ourJava15CompletionData : ourJavaCompletionData; + final ASTNode node = lastElement.getNode(); + assert node != null; + if (node.getElementType() == JavaTokenType.DOUBLE_LITERAL) { + return; + } if (ANNOTATION_ATTRIBUTE_NAME.accepts(position)) { completeAnnotationAttributeName(_result, position, parameters); @@ -185,6 +190,7 @@ public class JavaCompletionContributor extends CompletionContributor { return; } + final JavaAwareCompletionData completionData = PsiUtil.isLanguageLevel5OrHigher(lastElement) ? ourJava15CompletionData : ourJavaCompletionData; final boolean checkAccess = parameters.getInvocationCount() <= 1; LegacyCompletionContributor.processReferences(parameters, _result, completionData, new PairConsumer() { diff --git a/java/java-tests/testData/codeInsight/completion/normal/NothingAfterNumericLiteral.java b/java/java-tests/testData/codeInsight/completion/normal/NothingAfterNumericLiteral.java new file mode 100644 index 000000000000..16b01e8512f5 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/NothingAfterNumericLiteral.java @@ -0,0 +1,7 @@ +public class MyFirstTestClassFoo { + + { + map.put("key", new double[]{1.1d + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index a4c76afa65af..7fc0fd2b831c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -478,6 +478,8 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { doTest(); } + public void testNothingAfterNumericLiteral() throws Throwable { doAntiTest(); } + public void testNoAllClassesOnQualifiedReference() throws Throwable { configureByFile(getTestName(false) + ".java"); assertEmpty(myItems);