diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceArrayEqualityOpWithArraysEqualsIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceArrayEqualityOpWithArraysEqualsIntention.kt index 92ee272b2d0..bb2c68f46c7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceArrayEqualityOpWithArraysEqualsIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceArrayEqualityOpWithArraysEqualsIntention.kt @@ -18,11 +18,8 @@ package org.jetbrains.kotlin.idea.intentions import com.intellij.openapi.editor.Editor import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference import org.jetbrains.kotlin.idea.inspections.IntentionBasedInspection -import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.lexer.KtTokens -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtBinaryExpression import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.psi.createExpressionByPattern @@ -33,7 +30,7 @@ class ReplaceArrayEqualityOpWithArraysEqualsInspection : class ReplaceArrayEqualityOpWithArraysEqualsIntention : SelfTargetingOffsetIndependentIntention( KtBinaryExpression::class.java, - "Replace '==' with 'Arrays.equals'" + "Replace '==' with 'contentEquals'" ) { override fun applyTo(element: KtBinaryExpression, editor: Editor?) { @@ -41,13 +38,9 @@ class ReplaceArrayEqualityOpWithArraysEqualsIntention : SelfTargetingOffsetIndep val right = element.right ?: return val left = element.left ?: return val factory = KtPsiFactory(project) - val ktFile = element.containingKtFile - ktFile.resolveImportReference(FqName("java.util.Arrays")).firstOrNull()?.let { - ImportInsertHelper.getInstance(project).importDescriptor(ktFile, it) - } val template = buildString { if (element.operationToken == KtTokens.EXCLEQ) append("!") - append("Arrays.equals($0, $1)") + append("$0.contentEquals($1)") } val expression = factory.createExpressionByPattern(template, left, right) element.replace(expression) @@ -56,7 +49,7 @@ class ReplaceArrayEqualityOpWithArraysEqualsIntention : SelfTargetingOffsetIndep override fun isApplicableTo(element: KtBinaryExpression): Boolean { val operationToken = element.operationToken if (operationToken != KtTokens.EQEQ && operationToken != KtTokens.EXCLEQ) return false - if (operationToken == KtTokens.EXCLEQ) text = "Replace '!=' with 'Arrays.equals'" + if (operationToken == KtTokens.EXCLEQ) text = "Replace '!=' with 'contentEquals'" val right = element.right ?: return false val left = element.left ?: return false val rightResolvedCall = right.getResolvedCall(right.analyze()) ?: return false diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt index 8bec0b11c05..62ad7d293b1 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt @@ -1,5 +1,5 @@ // WITH_RUNTIME -// INTENTION_TEXT: Replace '==' with 'Arrays.equals' +// INTENTION_TEXT: Replace '==' with 'contentEquals' fun foo() { val a = arrayOf("a", "b", "c") val b = arrayOf("a", "b", "c") diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt.after b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt.after index 106dec0a540..336db699b6c 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt.after +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEQEQ.kt.after @@ -1,10 +1,8 @@ -import java.util.Arrays - // WITH_RUNTIME -// INTENTION_TEXT: Replace '==' with 'Arrays.equals' +// INTENTION_TEXT: Replace '==' with 'contentEquals' fun foo() { val a = arrayOf("a", "b", "c") val b = arrayOf("a", "b", "c") - if (Arrays.equals(a, b)) { + if (a.contentEquals(b)) { } } diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt index 945cee99ba2..3f58434033d 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt @@ -1,5 +1,5 @@ // WITH_RUNTIME -// INTENTION_TEXT: Replace '!=' with 'Arrays.equals' +// INTENTION_TEXT: Replace '!=' with 'contentEquals' fun foo() { val a = arrayOf("a", "b", "c") val b = arrayOf("a", "b", "c") diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt.after b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt.after index 3436155d9d3..0b53d65dbec 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt.after +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/arrayEXCLEQ.kt.after @@ -1,10 +1,8 @@ -import java.util.Arrays - // WITH_RUNTIME -// INTENTION_TEXT: Replace '!=' with 'Arrays.equals' +// INTENTION_TEXT: Replace '!=' with 'contentEquals' fun foo() { val a = arrayOf("a", "b", "c") val b = arrayOf("a", "b", "c") - if (!Arrays.equals(a, b)) { + if (!a.contentEquals(b)) { } } diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt index ca7b072ad07..6556b587a6a 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt @@ -1,5 +1,5 @@ // WITH_RUNTIME -// INTENTION_TEXT: Replace '==' with 'Arrays.equals' +// INTENTION_TEXT: Replace '==' with 'contentEquals' fun foo() { val a = charArrayOf('a', 'b', 'c') val b = charArrayOf('a', 'b', 'c') diff --git a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt.after b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt.after index 920bfb782a9..8471bf494e8 100644 --- a/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt.after +++ b/idea/testData/intentions/replaceArrayEqualityOpWithArraysEquals/primitiveArrayEQEQ.kt.after @@ -1,10 +1,8 @@ -import java.util.Arrays - // WITH_RUNTIME -// INTENTION_TEXT: Replace '==' with 'Arrays.equals' +// INTENTION_TEXT: Replace '==' with 'contentEquals' fun foo() { val a = charArrayOf('a', 'b', 'c') val b = charArrayOf('a', 'b', 'c') - if (Arrays.equals(a, b)) { + if (a.contentEquals(b)) { } }