Minor refactoring: if then to elvis

This commit is contained in:
Mikhail Glukhikh
2016-10-27 14:10:26 +03:00
parent 7b316f72dc
commit f390b9159a
@@ -35,7 +35,7 @@ class IfThenToElvisIntention : SelfTargetingOffsetIndependentIntention<KtIfExpre
) {
private fun KtExpression.clausesReplaceableByElvis(firstClause: KtExpression, secondClause: KtExpression) =
firstClause.isNotNullExpression() &&
!firstClause.isNullOrBlockExpression() &&
(secondClause.evaluatesTo(this) || secondClause.hasFirstReceiverOf(this)) &&
!(firstClause is KtThrowExpression && firstClause.throwsNullPointerExceptionWithNoArguments())
@@ -67,9 +67,9 @@ class IfThenToElvisIntention : SelfTargetingOffsetIndependentIntention<KtIfExpre
}
}
private fun KtExpression.isNotNullExpression(): Boolean {
private fun KtExpression.isNullOrBlockExpression(): Boolean {
val innerExpression = this.unwrapBlockOrParenthesis()
return innerExpression !is KtBlockExpression && innerExpression.node.elementType != KtNodeTypes.NULL
return innerExpression is KtBlockExpression || innerExpression.node.elementType == KtNodeTypes.NULL
}
private fun KtExpression.hasFirstReceiverOf(receiver: KtExpression): Boolean {