From 492d6ad737bb1d0b6c61dc7c9ba0c95acab198eb Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 22 Nov 2016 12:31:24 +0700 Subject: [PATCH] ReplaceInefficientStreamCountInspection: remove generic parameter list if any --- .../ReplaceInefficientStreamCountInspection.java | 4 ++++ .../afterStreamCountParameter.java | 12 ++++++++++++ .../beforeStreamCountParameter.java | 11 +++++++++++ 3 files changed, 27 insertions(+) create mode 100644 java/java-tests/testData/inspection/inefficientStreamCount/afterStreamCountParameter.java create mode 100644 java/java-tests/testData/inspection/inefficientStreamCount/beforeStreamCountParameter.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/ReplaceInefficientStreamCountInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/ReplaceInefficientStreamCountInspection.java index dcdf5af2e16f..2f0d56631fbe 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/ReplaceInefficientStreamCountInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/ReplaceInefficientStreamCountInspection.java @@ -188,6 +188,10 @@ public class ReplaceInefficientStreamCountInspection extends BaseJavaBatchLocalI } } CommentTracker ct = new CommentTracker(); + PsiReferenceParameterList parameterList = methodExpression.getParameterList(); + if(parameterList != null) { + ct.delete(parameterList); + } String replacementText = (addCast ? "(long) " : "") + ct.text(qualifierCall); PsiElement replacement = ct.replaceAndRestoreComments(toReplace, factory.createExpressionFromText(replacementText, countCall)); if (replacement instanceof PsiTypeCastExpression && RedundantCastUtil.isCastRedundant((PsiTypeCastExpression)replacement)) { diff --git a/java/java-tests/testData/inspection/inefficientStreamCount/afterStreamCountParameter.java b/java/java-tests/testData/inspection/inefficientStreamCount/afterStreamCountParameter.java new file mode 100644 index 000000000000..6a59cc5a2782 --- /dev/null +++ b/java/java-tests/testData/inspection/inefficientStreamCount/afterStreamCountParameter.java @@ -0,0 +1,12 @@ +// "Replace Collection.stream().count() with Collection.size()" "true" + +import java.util.ArrayList; +import java.util.List; + +public class Main { + public static long test() { + List s = new ArrayList<>(); + /* unused parameter */ + return (long) s.size(); + } +} diff --git a/java/java-tests/testData/inspection/inefficientStreamCount/beforeStreamCountParameter.java b/java/java-tests/testData/inspection/inefficientStreamCount/beforeStreamCountParameter.java new file mode 100644 index 000000000000..8dec3f0a76a1 --- /dev/null +++ b/java/java-tests/testData/inspection/inefficientStreamCount/beforeStreamCountParameter.java @@ -0,0 +1,11 @@ +// "Replace Collection.stream().count() with Collection.size()" "true" + +import java.util.ArrayList; +import java.util.List; + +public class Main { + public static long test() { + List s = new ArrayList<>(); + return s.stream().count(); + } +}