From 625def02993217e58f70f0e28fa7b4def90edb9d Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 11 Jul 2018 10:25:54 +0700 Subject: [PATCH] FoldExpressionIntoStream, StreamApiMigration: EquivalenceChecker used --- .../streamMigration/FoldExpressionIntoStreamInspection.java | 4 ++-- .../streamMigration/StreamApiMigrationInspection.java | 3 +-- .../quickFix/foldIntoStream/beforeConcatJoin.java | 2 +- .../afterAllActions/beforeToArrayCounted.java | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/FoldExpressionIntoStreamInspection.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/FoldExpressionIntoStreamInspection.java index 8dac62a047b7..839c09ee407d 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/FoldExpressionIntoStreamInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/FoldExpressionIntoStreamInspection.java @@ -1,7 +1,6 @@ // Copyright 2000-2018 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. package com.intellij.codeInspection.streamMigration; -import com.intellij.codeInsight.PsiEquivalenceUtil; import com.intellij.codeInspection.*; import com.intellij.codeInspection.util.LambdaGenerationUtil; import com.intellij.openapi.project.Project; @@ -148,7 +147,8 @@ public class FoldExpressionIntoStreamInspection extends AbstractBaseJavaLocalIns PsiExpression delimiter = null; PsiExpression rest = null; if (operands.length > 4 && ExpressionUtils.isSafelyRecomputableExpression(operands[1]) && - IntStreamEx.range(1, operands.length, 2).elements(operands).pairMap(PsiEquivalenceUtil::areElementsEquivalent) + IntStreamEx.range(1, operands.length, 2).elements(operands) + .pairMap(EquivalenceChecker.getCanonicalPsiEquivalence()::expressionsAreEquivalent) .allMatch(Boolean.TRUE::equals)) { delimiter = operands[1]; if (operands.length % 2 == 0) { diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java index 97e750145646..fa5eb42d659c 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java @@ -2,7 +2,6 @@ package com.intellij.codeInspection.streamMigration; import com.intellij.codeInsight.ExceptionUtil; -import com.intellij.codeInsight.PsiEquivalenceUtil; import com.intellij.codeInsight.daemon.GroupNames; import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil; import com.intellij.codeInsight.intention.impl.StreamRefactoringUtil; @@ -645,7 +644,7 @@ public class StreamApiMigrationInspection extends AbstractBaseJavaLocalInspectio private static boolean isArrayLength(PsiLocalVariable arrayVariable, PsiExpression dimension, PsiExpression bound) { if (ExpressionUtils.isReferenceTo(ExpressionUtils.getArrayFromLengthExpression(bound), arrayVariable)) return true; - if (PsiEquivalenceUtil.areElementsEquivalent(dimension, bound)) return true; + if (EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(dimension, bound)) return true; if (bound instanceof PsiMethodCallExpression) { PsiExpression qualifier = ((PsiMethodCallExpression)bound).getMethodExpression().getQualifierExpression(); if (qualifier != null && CollectionUtils.isCollectionOrMapSize(dimension, qualifier)) return true; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/foldIntoStream/beforeConcatJoin.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/foldIntoStream/beforeConcatJoin.java index 455588a3ff13..a986b6125f00 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/foldIntoStream/beforeConcatJoin.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/foldIntoStream/beforeConcatJoin.java @@ -1,6 +1,6 @@ // "Fold expression into 'String.join'" "true" class Test { void test(String a, String b, String c, String d) { - String result = a + "," + b + "," + c + "," + d + ","; + String result = a + "," + b + ((",")) + c + "," + d + ","; } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterAllActions/beforeToArrayCounted.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterAllActions/beforeToArrayCounted.java index edf7245451fb..36525507d916 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterAllActions/beforeToArrayCounted.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/afterAllActions/beforeToArrayCounted.java @@ -6,7 +6,7 @@ import java.util.List; public class Test { public void test(List ints) { long[] arr = new long[ints.size()]; - for(int i = 0; i < ints.size(); i++) { + for(int i = 0; i < (ints).size(); i++) { arr[i] = ints.get(i); } System.out.println(Arrays.toString(arr));