diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/LambdaExpressionElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/LambdaExpressionElementType.java index bb9540f23ac0..a812d92d28a7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/LambdaExpressionElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/LambdaExpressionElementType.java @@ -141,7 +141,19 @@ public class LambdaExpressionElementType extends FunctionalExpressionElementType buf.append("? "); } else if (ElementType.KEYWORD_BIT_SET.contains(tokenType)) { - buf.append(RecordUtil.intern(tree.getCharTable(), node)).append(" "); + buf.append(RecordUtil.intern(tree.getCharTable(), node)); + if (!ElementType.PRIMITIVE_TYPE_BIT_SET.contains(tokenType)) { + buf.append(" "); + } + } + else if (tokenType == JavaTokenType.ELLIPSIS) { + buf.append("..."); + } + else if (tokenType == JavaTokenType.RBRACKET) { + buf.append("]"); + } + else if (tokenType == JavaTokenType.LBRACKET) { + buf.append("["); } } } diff --git a/java/java-tests/testSrc/com/intellij/psi/JavaFunctionalExpressionPresentationTest.java b/java/java-tests/testSrc/com/intellij/psi/JavaFunctionalExpressionPresentationTest.java index 619b1f689069..f142bc9fa715 100644 --- a/java/java-tests/testSrc/com/intellij/psi/JavaFunctionalExpressionPresentationTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/JavaFunctionalExpressionPresentationTest.java @@ -67,6 +67,30 @@ public class JavaFunctionalExpressionPresentationTest extends CodeInsightTestCas } + public void testLambdaEllipsisParameter() { + doTest("import java.util.*;" + + "import java.util.function.Function;" + + "class A { Function f = " + + "(String... s) -> s;}", + "(String... s) -> {...}"); + } + + public void testLambdaArrayParameter() { + doTest("import java.util.*;" + + "import java.util.function.Function;" + + "class A { Function f = " + + "(String[] is) -> null;}", + "(String[] is) -> {...}"); + } + + public void testLambdaWithPrimitiveParameter() { + doTest("import java.util.*;" + + "import java.util.function.Function;" + + "class A { Function f = " + + "(int[] i) -> null;}", + "(int[] i) -> {...}"); + } + public void testMethodReferencePresentation() { doTest("import java.util.Supplier; " + "class A { Supplier s = java.util.Collections.emptyEnumeration()::toString; }",