Reformat: RemoveRedundantSpreadOperatorInspection
This commit is contained in:
committed by
Mikhail Glukhikh
parent
aa63ad4a45
commit
52c499166e
+18
-18
@@ -27,22 +27,22 @@ class RemoveRedundantSpreadOperatorInspection : AbstractKotlinInspection() {
|
|||||||
val argumentOffset = argument.startOffset
|
val argumentOffset = argument.startOffset
|
||||||
val startOffset = spreadElement.startOffset - argumentOffset
|
val startOffset = spreadElement.startOffset - argumentOffset
|
||||||
val endOffset =
|
val endOffset =
|
||||||
when (argumentExpression) {
|
when (argumentExpression) {
|
||||||
is KtCallExpression -> {
|
is KtCallExpression -> {
|
||||||
if (!argumentExpression.isArrayOfMethod()) return
|
if (!argumentExpression.isArrayOfMethod()) return
|
||||||
argumentExpression.calleeExpression!!.endOffset - argumentOffset
|
argumentExpression.calleeExpression!!.endOffset - argumentOffset
|
||||||
}
|
|
||||||
is KtCollectionLiteralExpression -> startOffset + 1
|
|
||||||
else -> return
|
|
||||||
}
|
}
|
||||||
|
is KtCollectionLiteralExpression -> startOffset + 1
|
||||||
|
else -> return
|
||||||
|
}
|
||||||
|
|
||||||
val problemDescriptor = holder.manager.createProblemDescriptor(
|
val problemDescriptor = holder.manager.createProblemDescriptor(
|
||||||
argument,
|
argument,
|
||||||
TextRange(startOffset, endOffset),
|
TextRange(startOffset, endOffset),
|
||||||
"Remove redundant spread operator",
|
"Remove redundant spread operator",
|
||||||
ProblemHighlightType.LIKE_UNUSED_SYMBOL,
|
ProblemHighlightType.LIKE_UNUSED_SYMBOL,
|
||||||
isOnTheFly,
|
isOnTheFly,
|
||||||
RemoveRedundantSpreadOperatorQuickfix()
|
RemoveRedundantSpreadOperatorQuickfix()
|
||||||
)
|
)
|
||||||
holder.registerProblem(problemDescriptor)
|
holder.registerProblem(problemDescriptor)
|
||||||
})
|
})
|
||||||
@@ -61,11 +61,11 @@ class RemoveRedundantSpreadOperatorQuickfix : LocalQuickFix {
|
|||||||
val outerArgumentList = spreadValueArgument.getStrictParentOfType<KtValueArgumentList>() ?: return
|
val outerArgumentList = spreadValueArgument.getStrictParentOfType<KtValueArgumentList>() ?: return
|
||||||
// Arguments under arrayOf or []
|
// Arguments under arrayOf or []
|
||||||
val innerArgumentExpressions =
|
val innerArgumentExpressions =
|
||||||
when (spreadArgumentExpression) {
|
when (spreadArgumentExpression) {
|
||||||
is KtCallExpression -> spreadArgumentExpression.valueArgumentList?.arguments?.map { it.getArgumentExpression() }
|
is KtCallExpression -> spreadArgumentExpression.valueArgumentList?.arguments?.map { it.getArgumentExpression() }
|
||||||
is KtCollectionLiteralExpression -> spreadArgumentExpression.getInnerExpressions()
|
is KtCollectionLiteralExpression -> spreadArgumentExpression.getInnerExpressions()
|
||||||
else -> null
|
else -> null
|
||||||
} ?: return
|
} ?: return
|
||||||
|
|
||||||
val factory = KtPsiFactory(project)
|
val factory = KtPsiFactory(project)
|
||||||
innerArgumentExpressions.reversed().forEach { outerArgumentList.addArgumentAfter(factory.createArgument(it), spreadValueArgument) }
|
innerArgumentExpressions.reversed().forEach { outerArgumentList.addArgumentAfter(factory.createArgument(it), spreadValueArgument) }
|
||||||
|
|||||||
Reference in New Issue
Block a user