From 20113417a029b02c8dd8c322ee1488c76af90ccd Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 25 Apr 2017 16:27:04 +0200 Subject: [PATCH] completion: don't start template if Object was inferred by the parent type --- .../completion/ConstructorInsertHandler.java | 4 +++- .../completion/className/template/after3.java | 11 +++++++++++ .../completion/className/template/before3.java | 6 ++++++ .../completion/ClassNameCompletionTest.java | 5 +++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/className/template/after3.java create mode 100644 java/java-tests/testData/codeInsight/completion/className/template/before3.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java index a46c9c1e059d..bba321e6247f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java @@ -32,6 +32,7 @@ import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.impl.source.PostprocessReformattingAspect; import com.intellij.psi.infos.CandidateInfo; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiTypesUtil; import com.intellij.psi.util.PsiUtilCore; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.Contract; @@ -303,7 +304,8 @@ public class ConstructorInsertHandler implements InsertHandler f = new Foo() { + @Override + public void foo(Objec objec) { + + } + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/className/template/before3.java b/java/java-tests/testData/codeInsight/completion/className/template/before3.java new file mode 100644 index 000000000000..bc2798cd942e --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/className/template/before3.java @@ -0,0 +1,6 @@ +import pack.Foo; +class Test { + { + Foo f = new + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/ClassNameCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/ClassNameCompletionTest.java index 481dc78890b5..f1833116179f 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/ClassNameCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/ClassNameCompletionTest.java @@ -95,6 +95,11 @@ public class ClassNameCompletionTest extends LightFixtureCompletionTestCase { selectItem(myItems[0]); assert TemplateManagerImpl.getTemplateState(myFixture.getEditor()) == null; checkResultByFile(path +"/after2.java"); + + configureByFile(path + "/before3.java"); + selectItem(myItems[0]); + assert TemplateManagerImpl.getTemplateState(myFixture.getEditor()) == null; + checkResultByFile(path +"/after3.java"); } private void createClass(String text) {