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 6121f993f709..be3d41caf03b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -773,6 +773,9 @@ public class JavaCompletionContributor extends CompletionContributor { return true; } } + if (psiElement(PsiIdentifier.class).withParent(psiParameter()).accepts(file.findElementAt(startOffset))) { + return true; + } HighlighterIterator iterator = ((EditorEx)editor).getHighlighter().createIterator(startOffset); if (iterator.atEnd()) return false; diff --git a/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes.java b/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes.java new file mode 100644 index 000000000000..8f917f14497d --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes.java @@ -0,0 +1,13 @@ +package abcdef; + +import java.util.List; + +/** + * Created by peter on 1/27/17. ${FFF} + */ +public class Foo { + void foo() { + List strings = null; + strings.stream().anyMatch((ChSeqx) -> x.charAt(0) == 'a'); + } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes_after.java b/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes_after.java new file mode 100644 index 000000000000..e3f93c53eec1 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/SuggestClassNamesForLambdaParameterTypes_after.java @@ -0,0 +1,13 @@ +package abcdef; + +import java.util.List; + +/** + * Created by peter on 1/27/17. ${FFF} + */ +public class Foo { + void foo() { + List strings = null; + strings.stream().anyMatch((CharSequencex) -> x.charAt(0) == 'a'); + } +} 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 477be032ea96..45c6df631011 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1743,4 +1743,6 @@ class Bar { assert myFixture.lookupElements[0].object == uClass } + void testSuggestClassNamesForLambdaParameterTypes() { doTest('\n') } + }