From 84d71e5a8ca145e23adf634e5814ceb7163c8e29 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 10 May 2018 20:41:53 +0300 Subject: [PATCH] "Wrap with let": minor enhancement (related to KT-6364) --- .../kotlin/idea/quickfix/WrapWithSafeLetCallFix.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/WrapWithSafeLetCallFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/WrapWithSafeLetCallFix.kt index 5401379c442..3733242c584 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/WrapWithSafeLetCallFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/WrapWithSafeLetCallFix.kt @@ -51,10 +51,13 @@ class WrapWithSafeLetCallFix( val validator = NewDeclarationNameValidator(element, nullableExpression, NewDeclarationNameValidator.Target.VARIABLES) val name = KotlinNameSuggester.suggestNameByName("it", validator) 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) { - "it" -> factory.createExpressionByPattern("$0?.let { $1 }", nullableText, newExpression) - else -> factory.createExpressionByPattern("$0?.let { $1 -> $2 }", nullableText, name, newExpression) + "it" -> factory.createExpressionByPattern("$0?.let { $1 }", nullableText, underLetExpression) + else -> factory.createExpressionByPattern("$0?.let { $1 -> $2 }", nullableText, name, underLetExpression) } (qualifiedExpression ?: element).replace(wrapped) }