Surround with null check : apply for ITERATOR_ON_NULLABLE
This commit is contained in:
@@ -193,6 +193,7 @@ class QuickFixRegistrar : QuickFixContributor {
|
||||
UNSAFE_CALL.registerFactory(SurroundWithNullCheckFix)
|
||||
UNSAFE_IMPLICIT_INVOKE_CALL.registerFactory(SurroundWithNullCheckFix)
|
||||
UNSAFE_INFIX_CALL.registerFactory(SurroundWithNullCheckFix)
|
||||
ITERATOR_ON_NULLABLE.registerFactory(SurroundWithNullCheckFix.IteratorOnNullableFactory)
|
||||
|
||||
UNSAFE_CALL.registerFactory(WrapWithSafeLetCallFix.UnsafeFactory)
|
||||
UNSAFE_IMPLICIT_INVOKE_CALL.registerFactory(WrapWithSafeLetCallFix.UnsafeFactory)
|
||||
|
||||
@@ -69,6 +69,19 @@ class SurroundWithNullCheckFix(
|
||||
return SurroundWithNullCheckFix(expression, nullableExpression)
|
||||
}
|
||||
}
|
||||
|
||||
object IteratorOnNullableFactory : KotlinSingleIntentionActionFactory() {
|
||||
|
||||
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
|
||||
val nullableExpression = diagnostic.psiElement as? KtReferenceExpression ?: return null
|
||||
val forExpression = nullableExpression.parent?.parent as? KtForExpression ?: return null
|
||||
if (forExpression.parent !is KtBlockExpression) return null
|
||||
|
||||
if (!nullableExpression.isPredictable()) return null
|
||||
|
||||
return SurroundWithNullCheckFix(forExpression, nullableExpression)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun KtExpression.isPredictable(): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user