diff --git a/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties b/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties index 458232a42f64..b6e390feb513 100644 --- a/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties +++ b/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties @@ -565,7 +565,7 @@ generate.members.position.at.the.end.of.class=At the end of class navigate.to.overridden.methods.title=Overriding methods of {0} subclasses.search.progress.title=Searching for overridden methods progress.title.searching.for.overridden.methods=Searching for overridden methods -arguments.count.mismatch=Expected {0} arguments but found {1} +arguments.count.mismatch=Expected {0, choice, 0#no arguments|1#1 argument|1<{0} arguments} but found {1} inspection.message.nullable.method.implements.non.null.method=Nullable method ''{0}'' from ''{1}'' implements non-null method from ''{2}'' inspection.message.non.annotated.method.implements.non.null.method=Non-annotated method ''{0}'' from ''{1}'' implements non-null method from ''{2}'' inspection.message.non.null.parameter.should.not.override.nullable.parameter=Non-null parameter ''{0}'' in method ''{1}'' from ''{2}'' should not override nullable parameter from ''{3}'' diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java index b2ded27d9bd7..258fec5c869c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java @@ -580,6 +580,7 @@ public final class HighlightMethodUtil { if ((parameters.length == 0 || !parameters[parameters.length - 1].isVarArgs()) && parameters.length != expressions.length) { toolTip = createMismatchedArgumentCountTooltip(parameters.length, expressions.length); + description = JavaAnalysisBundle.message("arguments.count.mismatch", parameters.length, expressions.length); } else if (mismatchedExpressions.isEmpty()) { if (IncompleteModelUtil.isIncompleteModel(list)) return null; @@ -629,6 +630,7 @@ public final class HighlightMethodUtil { PsiType argType = wrongArg != null ? wrongArg.getType() : null; if (argType != null) { int idx = ArrayUtil.find(expressions, wrongArg); + if (idx > parameters.length - 1 && !parameters[parameters.length - 1].isVarArgs()) return null; PsiType paramType = candidateInfo.getSubstitutor().substitute(PsiTypesUtil.getParameterType(parameters, idx, candidateInfo.isVarargs())); String errorMessage = candidateInfo.getInferenceErrorMessage(); HtmlChunk reason = getTypeMismatchErrorHtml(errorMessage); @@ -838,8 +840,7 @@ public final class HighlightMethodUtil { boolean varargs) { List result = new ArrayList<>(); for (int i = 0; i < Math.max(parameters.length, expressions.length); i++) { - if (parameters.length == 0 || - !assignmentCompatible(i, parameters, expressions, substitutor, varargs)) { + if (parameters.length == 0 || !assignmentCompatible(i, parameters, expressions, substitutor, varargs)) { result.add(i < expressions.length ? expressions[i] : null); } } @@ -1200,8 +1201,7 @@ public final class HighlightMethodUtil { @NotNull private static @NlsContexts.Tooltip String createMismatchedArgumentCountTooltip(int expected, int actual) { - return HtmlChunk.text(JavaAnalysisBundle.message("arguments.count.mismatch", expected, actual)) - .wrapWith("html").toString(); + return HtmlChunk.text(JavaAnalysisBundle.message("arguments.count.mismatch", expected, actual)).wrapWith("html").toString(); } @NotNull @@ -1837,8 +1837,7 @@ public final class HighlightMethodUtil { } PsiJavaCodeReferenceElement classReference = expression.getClassOrAnonymousClassReference(); - checkConstructorCall(project, typeResult, expression, type, classReference, javaSdkVersion, expression.getArgumentList(), - errorSink); + checkConstructorCall(project, typeResult, expression, type, classReference, javaSdkVersion, expression.getArgumentList(), errorSink); } static void checkAmbiguousConstructorCall(@NotNull Project project, PsiJavaCodeReferenceElement ref, diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/StaticImportMethodShadowing.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/StaticImportMethodShadowing.java index 694ceda3ce36..8b7c76a4f902 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/StaticImportMethodShadowing.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/StaticImportMethodShadowing.java @@ -27,5 +27,5 @@ class Base { class Derived extends Base { final static Object o1 = getObject(null); - final Object o2 = getObject(null); + final Object o2 = getObject(null); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting8/WrongNumberOfArguments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting8/WrongNumberOfArguments.java new file mode 100644 index 000000000000..11a369d4956e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting8/WrongNumberOfArguments.java @@ -0,0 +1,12 @@ +import java.util.function.Consumer; + +class WrongNumberOfArguments { + + void fun1(String str, Consumer onFinish) { } + void getStr(String asd) { } + + void asd() { + int asd = 1; + fun1("text", s -> getStr(s), asd); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum.java index 2610244aec96..6f028e4c9514 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/Enum.java @@ -222,8 +222,8 @@ class NestedEnums { } enum EnumWithoutExpectedArguments { - ONE, //comment - TWO + ONE, //comment + TWO ; EnumWithoutExpectedArguments(int a) {} } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEADEV14006.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEADEV14006.java index 1efc6d8ca930..c38f1c083747 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEADEV14006.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEADEV14006.java @@ -13,6 +13,6 @@ class Test2 {} class Test { public void test(TestIF testIF) { - testIF.run(); + testIF.run(); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IntersectTypeParameterBounds.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IntersectTypeParameterBounds.java index be9017271e07..a26524f62886 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IntersectTypeParameterBounds.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IntersectTypeParameterBounds.java @@ -12,7 +12,7 @@ class Main { void m(Object[] obj) { List r1 = foo(null); List r2 = foo(null); - List r3 = foo( ); + List r3 = foo( ); List r4 = foo(null); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/RecursiveBoundsDependencies.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/RecursiveBoundsDependencies.java index bce3e063a806..653075a5b475 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/RecursiveBoundsDependencies.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/RecursiveBoundsDependencies.java @@ -1,6 +1,6 @@ class Test { private <S extends K, K extends S> S b(S s) { - if (true) return b (); + if (true) return b (); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/ConditionalExpressionInIncompleteCall.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/ConditionalExpressionInIncompleteCall.java index 316fba37f430..8c7db067eccc 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/ConditionalExpressionInIncompleteCall.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/ConditionalExpressionInIncompleteCall.java @@ -1,7 +1,7 @@ class Test{ void test() { - B b = new B(true == false ? "bar" : null); + B b = new B(true == false ? "bar" : null); } class B { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEADEV14006.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEADEV14006.java index 502e323be476..e67183ee76a2 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEADEV14006.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/IDEADEV14006.java @@ -13,6 +13,6 @@ class Test2 {} class Test { public void test(TestIF testIF) { - testIF.run(); + testIF.run(); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/additionalConstraints/IncompleteResolveDuringNestedChecks.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/additionalConstraints/IncompleteResolveDuringNestedChecks.java index 7974743022b2..416bd26a8eaa 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/additionalConstraints/IncompleteResolveDuringNestedChecks.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/additionalConstraints/IncompleteResolveDuringNestedChecks.java @@ -3,7 +3,7 @@ import java.util.function.UnaryOperator; class Test { private void example() { - update(x -> x.flatMap(y -> getEmpty())); + update(x -> x.flatMap(y -> getEmpty())); } private Test flatMap() { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/NestedClassArgConstructor.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/NestedClassArgConstructor.java index bfa96b558e22..f8493303d2b7 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/NestedClassArgConstructor.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/NestedClassArgConstructor.java @@ -5,7 +5,7 @@ class R { } public static void main(String[] args) { - test(new R<>.O()); + test(new R<>.O()); } private static void test(R.O o) { } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/WrongNumberOfArguments.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/WrongNumberOfArguments.java index 3cdaf1281ef0..4ca9726fb972 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/WrongNumberOfArguments.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/diamond/WrongNumberOfArguments.java @@ -1,6 +1,6 @@ class A{ A(R value) {} public static void main(String[] args) { - A a = new A<>("hi", 1); + A a = new A<>("hi", 1); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/OverriddenVarargWithaArray.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/OverriddenVarargWithaArray.java index a09189b8c1a8..1e8044735c79 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/OverriddenVarargWithaArray.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/OverriddenVarargWithaArray.java @@ -8,8 +8,8 @@ interface TypeB extends TypeA { class Test { void foo(final TypeB typeB) { - typeB.test("a", "b"); + typeB.test("a", "b"); typeB.test("a"); - typeB.test(); + typeB.test(); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PotentialCompatibilityInCaseWhenNoMethodHasValidNumberOfParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PotentialCompatibilityInCaseWhenNoMethodHasValidNumberOfParameters.java index 115a45969a16..e91d53e78c37 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PotentialCompatibilityInCaseWhenNoMethodHasValidNumberOfParameters.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PotentialCompatibilityInCaseWhenNoMethodHasValidNumberOfParameters.java @@ -7,8 +7,8 @@ class Test { varargs(1); varargs(1, ""); varargs(1, "", ""); - usage(); + usage(); usage(""); - usage("", ""); + usage("", ""); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PreferMethodInsideSameComb.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PreferMethodInsideSameComb.java index c05e0d36403c..909804aa6881 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PreferMethodInsideSameComb.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PreferMethodInsideSameComb.java @@ -5,7 +5,7 @@ interface ToStringBug { class Inner implements ToStringBug { { - toString( "x"); + toString( "x"); } } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/StaticImportOfObjectsToString.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/StaticImportOfObjectsToString.java index dd3da69b6b29..a48ffb416087 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/StaticImportOfObjectsToString.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/StaticImportOfObjectsToString.java @@ -4,7 +4,7 @@ import static java.util.Objects.toString; class Foo { String go() { - return toString("foo"); + return toString("foo"); } public String toString() { diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/style/equals_called_on_enum_constant/EqualsCalled.java b/java/java-tests/testData/ig/com/siyeh/igtest/style/equals_called_on_enum_constant/EqualsCalled.java index 56a8a7c519d6..8d5fb0ae8f75 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/style/equals_called_on_enum_constant/EqualsCalled.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/style/equals_called_on_enum_constant/EqualsCalled.java @@ -9,7 +9,7 @@ public class EqualsCalled { void one() { E.A.equals(E.C); E.B.equals(new Object()); - E.C.equals(); + E.C.equals(); final Object A = new Object(); A.equals(1); } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java b/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java index 91114130d54a..cef1e5fe67cf 100644 --- a/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java @@ -4,6 +4,6 @@ public class Npe { // Do something } - o.equals(); + o.equals(); } } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingJdk8Test.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingJdk8Test.java index e140379c5702..2789a0de99e9 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingJdk8Test.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingJdk8Test.java @@ -1,4 +1,4 @@ -// Copyright 2000-2022 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.daemon; import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase; @@ -34,6 +34,7 @@ public class LightAdvHighlightingJdk8Test extends LightDaemonAnalyzerTestCase { public void testLambdaExpressions() { doTest(false, true); } public void testUnsupportedFeatures() { doTest(false, false); } public void testModulesNotSupported() { doTest(false, false); } + public void testWrongNumberOfArguments() { doTest(false, false); } public void testTooManyVarargsPolyArguments() { doTest(true, false); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/transformations/GrAutoCloneTransformationSupportTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/transformations/GrAutoCloneTransformationSupportTest.groovy index b54533782f52..3f40e9465d6d 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/transformations/GrAutoCloneTransformationSupportTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/transformations/GrAutoCloneTransformationSupportTest.groovy @@ -1,4 +1,4 @@ -// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.plugins.groovy.transformations import com.intellij.testFramework.LightProjectDescriptor @@ -78,7 +78,7 @@ class Pojo extends Pogo { void foo() { Pogo pogo = new Pogo(); cloneOrCopyMembers(pogo); - cloneOrCopyMembers(); + cloneOrCopyMembers(); } } ''' diff --git a/plugins/lombok/testData/inspection/defaultConstructor/ClassWithJavaConstructor.java b/plugins/lombok/testData/inspection/defaultConstructor/ClassWithJavaConstructor.java index e6ee72014105..3fe87fd85925 100644 --- a/plugins/lombok/testData/inspection/defaultConstructor/ClassWithJavaConstructor.java +++ b/plugins/lombok/testData/inspection/defaultConstructor/ClassWithJavaConstructor.java @@ -11,7 +11,7 @@ public class ClassWithJavaConstructor { public static class B extends A { public B() { - super(); + super(); } public B(int i) {