"Wrap with let": minor enhancement (related to KT-6364)
This commit is contained in:
@@ -51,10 +51,13 @@ class WrapWithSafeLetCallFix(
|
|||||||
val validator = NewDeclarationNameValidator(element, nullableExpression, NewDeclarationNameValidator.Target.VARIABLES)
|
val validator = NewDeclarationNameValidator(element, nullableExpression, NewDeclarationNameValidator.Target.VARIABLES)
|
||||||
val name = KotlinNameSuggester.suggestNameByName("it", validator)
|
val name = KotlinNameSuggester.suggestNameByName("it", validator)
|
||||||
nullableExpression.replace(factory.createExpression(name))
|
nullableExpression.replace(factory.createExpression(name))
|
||||||
val newExpression: Any = if (receiverExpression != null) "${receiverExpression.text}.${element.text}" else element
|
val underLetExpression = when {
|
||||||
|
receiverExpression != null -> factory.createExpressionByPattern("$0.$1", receiverExpression, element)
|
||||||
|
else -> element
|
||||||
|
}
|
||||||
val wrapped = when (name) {
|
val wrapped = when (name) {
|
||||||
"it" -> factory.createExpressionByPattern("$0?.let { $1 }", nullableText, newExpression)
|
"it" -> factory.createExpressionByPattern("$0?.let { $1 }", nullableText, underLetExpression)
|
||||||
else -> factory.createExpressionByPattern("$0?.let { $1 -> $2 }", nullableText, name, newExpression)
|
else -> factory.createExpressionByPattern("$0?.let { $1 -> $2 }", nullableText, name, underLetExpression)
|
||||||
}
|
}
|
||||||
(qualifiedExpression ?: element).replace(wrapped)
|
(qualifiedExpression ?: element).replace(wrapped)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user