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 a051ff0af72b..be3e1cf50b42 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInsight.completion; import com.intellij.application.options.CodeStyle; @@ -88,7 +88,10 @@ public final class JavaCompletionContributor extends CompletionContributor imple psiElement().afterLeaf(".").insideStarting(psiExpressionStatement()), // like `call(Cls::methodRef.` psiElement().afterLeaf(psiElement(JavaTokenType.DOT).afterSibling(psiElement(PsiMethodCallExpression.class).withLastChild( - psiElement(PsiExpressionList.class).withLastChild(psiElement(PsiErrorElement.class)))))); + psiElement(PsiExpressionList.class).withLastChild(psiElement(PsiErrorElement.class))))), + // dot after primitive type `int.` or dot after dot `Object..` + psiElement().afterLeaf(psiElement(JavaTokenType.DOT).withParent( + psiElement(PsiErrorElement.class).afterSibling(psiElement(PsiErrorElement.class))))); private static final PsiNameValuePairPattern NAME_VALUE_PAIR = psiNameValuePair().withSuperParent(2, psiElement(PsiAnnotation.class)); private static final ElementPattern ANNOTATION_ATTRIBUTE_NAME = diff --git a/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter.java b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter.java new file mode 100644 index 000000000000..ec6981c81947 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter.java @@ -0,0 +1,3 @@ +public class Foo { + void foo(int.){ } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2.java b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2.java new file mode 100644 index 000000000000..448323b73e2f --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2.java @@ -0,0 +1,3 @@ +public class Foo { + void foo(int..){ } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2_after.java b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2_after.java new file mode 100644 index 000000000000..5bae55b8c80c --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter2_after.java @@ -0,0 +1,3 @@ +public class Foo { + void foo(int...){ } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter_after.java b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter_after.java new file mode 100644 index 000000000000..448323b73e2f --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PrimitiveVarargMethodParameter_after.java @@ -0,0 +1,3 @@ +public class Foo { + void foo(int..){ } +} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java index 82e51f825c5a..c32713e719ba 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.codeInsight.completion; import com.intellij.application.options.CodeStyle; @@ -1127,6 +1127,10 @@ public class NormalCompletionTest extends NormalCompletionTestCase { public void testEnumConstantFromEnumMember() { doTest(); } public void testPrimitiveMethodParameter() { doTest(); } + + public void testPrimitiveVarargMethodParameter() { doTest("."); } + + public void testPrimitiveVarargMethodParameter2() { doTest("."); } public void testNewExpectedClassParens() { doTest("\n"); }