Reformat IfThenToElvisIntention
This commit is contained in:
+14
-10
@@ -32,18 +32,18 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getType
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
|
||||
class IfThenToElvisInspection : IntentionBasedInspection<KtIfExpression>(
|
||||
IfThenToElvisIntention::class,
|
||||
{ it -> it.isUsedAsExpression(it.analyze(BodyResolveMode.PARTIAL_WITH_CFA)) }
|
||||
IfThenToElvisIntention::class,
|
||||
{ it -> it.isUsedAsExpression(it.analyze(BodyResolveMode.PARTIAL_WITH_CFA)) }
|
||||
) {
|
||||
override fun inspectionTarget(element: KtIfExpression) = element.ifKeyword
|
||||
|
||||
override fun problemHighlightType(element: KtIfExpression): ProblemHighlightType =
|
||||
if (element.shouldBeTransformed()) super.problemHighlightType(element) else ProblemHighlightType.INFORMATION
|
||||
if (element.shouldBeTransformed()) super.problemHighlightType(element) else ProblemHighlightType.INFORMATION
|
||||
}
|
||||
|
||||
class IfThenToElvisIntention : SelfTargetingOffsetIndependentIntention<KtIfExpression>(
|
||||
KtIfExpression::class.java,
|
||||
"Replace 'if' expression with elvis expression"
|
||||
KtIfExpression::class.java,
|
||||
"Replace 'if' expression with elvis expression"
|
||||
) {
|
||||
|
||||
private fun IfThenToSelectData.clausesReplaceableByElvis(): Boolean {
|
||||
@@ -51,8 +51,8 @@ class IfThenToElvisIntention : SelfTargetingOffsetIndependentIntention<KtIfExpre
|
||||
if (negatedClause is KtThrowExpression && negatedClause.throwsNullPointerExceptionWithNoArguments()) return false
|
||||
|
||||
return receiverExpression is KtThisExpression && hasImplicitReceiver() ||
|
||||
baseClause.evaluatesTo(receiverExpression) ||
|
||||
baseClause.hasFirstReceiverOf(receiverExpression) && !baseClause.hasNullableType(context)
|
||||
baseClause.evaluatesTo(receiverExpression) ||
|
||||
baseClause.hasFirstReceiverOf(receiverExpression) && !baseClause.hasNullableType(context)
|
||||
}
|
||||
|
||||
override fun isApplicableTo(element: KtIfExpression): Boolean {
|
||||
@@ -78,9 +78,13 @@ class IfThenToElvisIntention : SelfTargetingOffsetIndependentIntention<KtIfExpre
|
||||
val factory = KtPsiFactory(element)
|
||||
val elvis = runWriteAction {
|
||||
val replacedBaseClause = ifThenToSelectData.replacedBaseClause(factory)
|
||||
val newExpr = element.replaced(factory.createExpressionByPattern("$0 ?: $1",
|
||||
replacedBaseClause,
|
||||
ifThenToSelectData.negatedClause!!))
|
||||
val newExpr = element.replaced(
|
||||
factory.createExpressionByPattern(
|
||||
"$0 ?: $1",
|
||||
replacedBaseClause,
|
||||
ifThenToSelectData.negatedClause!!
|
||||
)
|
||||
)
|
||||
KtPsiUtil.deparenthesize(newExpr) as KtBinaryExpression
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user