Surround with null check : minor refactoring

This commit is contained in:
Mikhail Glukhikh
2016-06-13 14:43:04 +03:00
parent 230f73acc9
commit 7f771075fb
@@ -64,14 +64,16 @@ class SurroundWithNullCheckFix(
else -> return null
} as? KtReferenceExpression ?: return null
val context = expression.analyze()
val nullableType = nullableExpression.getType(context) ?: return null
val containingDescriptor = nullableExpression.getResolutionScope(context, expression.getResolutionFacade()).ownerDescriptor
val dataFlowValue = DataFlowValueFactory.createDataFlowValue(nullableExpression, nullableType, context, containingDescriptor)
if (!dataFlowValue.isPredictable) return null
if (!nullableExpression.isPredictable()) return null
return SurroundWithNullCheckFix(expression, nullableExpression)
}
}
}
}
private fun KtExpression.isPredictable(): Boolean {
val context = this.analyze()
val nullableType = this.getType(context) ?: return false
val containingDescriptor = this.getResolutionScope(context, this.getResolutionFacade()).ownerDescriptor
return DataFlowValueFactory.createDataFlowValue(this, nullableType, context, containingDescriptor).isPredictable
}