From b66c85fdeea6d96b852e81c5f3393e5c3bcf783d Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 17 Aug 2011 17:09:20 +0200 Subject: [PATCH] diamonds: forbid diamonds completion with anonymous rollover (IDEA-72527) --- .../codeInsight/completion/JavaInheritorsGetter.java | 2 +- .../DiamondNotCollapsedInCaseOfAnonymousClasses-out.java | 9 +++++++++ .../DiamondNotCollapsedInCaseOfAnonymousClasses.java | 8 ++++++++ .../completion/SmartType17CompletionTest.java | 4 ++++ .../completion/CompletionProgressIndicator.java | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/DiamondNotCollapsedInCaseOfAnonymousClasses-out.java create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/DiamondNotCollapsedInCaseOfAnonymousClasses.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java index 89a928ecb034..1a55cee49c3c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java @@ -137,7 +137,7 @@ public class JavaInheritorsGetter extends CompletionProvider d = new MyDD() { + } + } +} + +abstract class MyDD { +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/smartType/DiamondNotCollapsedInCaseOfAnonymousClasses.java b/java/java-tests/testData/codeInsight/completion/smartType/DiamondNotCollapsedInCaseOfAnonymousClasses.java new file mode 100644 index 000000000000..546c59c4c63f --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/smartType/DiamondNotCollapsedInCaseOfAnonymousClasses.java @@ -0,0 +1,8 @@ +class MyClass { + public void foo() { + MyDD d = new MyD + } +} + +abstract class MyDD { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java index 272408cedc6e..14436d1336db 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java @@ -41,6 +41,10 @@ public class SmartType17CompletionTest extends LightFixtureCompletionTestCase { doTest(); } + public void testDiamondNotCollapsedInCaseOfAnonymousClasses() throws Exception { + doTest(); + } + public void testDiamondPresentation() { configureByFile("/" + getTestName(false) + ".java"); LookupElementPresentation presentation = new LookupElementPresentation(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java index 2f6de08bfa27..83f633fc46a1 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionProgressIndicator.java @@ -382,7 +382,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement myLookup.addItem(item.getLookupElement(), item.getPrefixMatcher()); myCount++; - if (myCount == 1) { + if (myCount == 1 && !ApplicationManager.getApplication().isUnitTestMode()) { ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { public void run() { try {