Fix SimplifiableCallChain inspection quick fix removes comments for intermediate operations
This commit is contained in:
committed by
Mikhail Glukhikh
parent
8728bc0820
commit
db4144426a
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParentheses
|
|||||||
import org.jetbrains.kotlin.idea.core.replaced
|
import org.jetbrains.kotlin.idea.core.replaced
|
||||||
import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument
|
import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument
|
||||||
import org.jetbrains.kotlin.idea.intentions.callExpression
|
import org.jetbrains.kotlin.idea.intentions.callExpression
|
||||||
|
import org.jetbrains.kotlin.idea.util.CommentSaver
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.PsiChildRange
|
import org.jetbrains.kotlin.psi.psiUtil.PsiChildRange
|
||||||
|
|
||||||
@@ -42,6 +43,7 @@ class SimplifyCallChainFix(
|
|||||||
override fun getFamilyName() = name
|
override fun getFamilyName() = name
|
||||||
|
|
||||||
fun apply(qualifiedExpression: KtQualifiedExpression) {
|
fun apply(qualifiedExpression: KtQualifiedExpression) {
|
||||||
|
val commentSaver = CommentSaver(qualifiedExpression)
|
||||||
val factory = KtPsiFactory(qualifiedExpression)
|
val factory = KtPsiFactory(qualifiedExpression)
|
||||||
val firstExpression = qualifiedExpression.receiverExpression
|
val firstExpression = qualifiedExpression.receiverExpression
|
||||||
|
|
||||||
@@ -85,6 +87,10 @@ class SimplifyCallChainFix(
|
|||||||
val project = qualifiedExpression.project
|
val project = qualifiedExpression.project
|
||||||
val file = qualifiedExpression.containingKtFile
|
val file = qualifiedExpression.containingKtFile
|
||||||
val result = qualifiedExpression.replaced(newQualifiedOrCallExpression)
|
val result = qualifiedExpression.replaced(newQualifiedOrCallExpression)
|
||||||
|
|
||||||
|
if (!firstCallHasArguments && !secondCallHasArguments) {
|
||||||
|
commentSaver.restore(result)
|
||||||
|
}
|
||||||
if (lambdaExpression != null) {
|
if (lambdaExpression != null) {
|
||||||
val callExpression = when (result) {
|
val callExpression = when (result) {
|
||||||
is KtQualifiedExpression -> result.callExpression
|
is KtQualifiedExpression -> result.callExpression
|
||||||
|
|||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = listOf(1, 2, 3, 11, 33, 25, 100)
|
||||||
|
.filter<caret> { it % 2 == 0 } // Some Comment
|
||||||
|
.isNotEmpty() // Some Additional Comment
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = // Some Comment
|
||||||
|
listOf(1, 2, 3, 11, 33, 25, 100).any { it % 2 == 0 } // Some Additional Comment
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = listOf(1, 2, 3, 11, 33, 25, 100)
|
||||||
|
.filter<caret> { it % 2 == 0 } // Some Comment
|
||||||
|
.isNotEmpty()
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = // Some Comment
|
||||||
|
listOf(1, 2, 3, 11, 33, 25, 100).any { it % 2 == 0 }
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = listOf(1, 2, 3, 11, 33, 25, 100)
|
||||||
|
.filter<caret> { it % 2 == 0 }
|
||||||
|
.isNotEmpty() // Some Comment
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
val v1 = listOf(1, 2, 3, 11, 33, 25, 100).any { it % 2 == 0 } // Some Comment
|
||||||
+15
@@ -1276,6 +1276,21 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
|
|||||||
runTest("idea/testData/inspectionsLocal/collections/simplifiableCallChain/mapWithReturn.kt");
|
runTest("idea/testData/inspectionsLocal/collections/simplifiableCallChain/mapWithReturn.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("saveComment.kt")
|
||||||
|
public void testSaveComment() throws Exception {
|
||||||
|
runTest("idea/testData/inspectionsLocal/collections/simplifiableCallChain/saveComment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("saveComment2.kt")
|
||||||
|
public void testSaveComment2() throws Exception {
|
||||||
|
runTest("idea/testData/inspectionsLocal/collections/simplifiableCallChain/saveComment2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("saveComment3.kt")
|
||||||
|
public void testSaveComment3() throws Exception {
|
||||||
|
runTest("idea/testData/inspectionsLocal/collections/simplifiableCallChain/saveComment3.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("idea/testData/inspectionsLocal/collections/simplifiableCallChain/primitiveArray")
|
@TestMetadata("idea/testData/inspectionsLocal/collections/simplifiableCallChain/primitiveArray")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user