Minor: Extract name comparison
This commit is contained in:
@@ -60,14 +60,14 @@ abstract class ChangeFunctionSignatureFix(
|
||||
protected fun getNewArgumentName(argument: ValueArgument, validator: Function1<String, Boolean>): String {
|
||||
val expression = KtPsiUtil.deparenthesize(argument.getArgumentExpression())
|
||||
val argumentName = argument.getArgumentName()?.asName?.asString()
|
||||
?: (expression as? KtNameReferenceExpression)?.getReferencedName()?.takeIf { it != "it" && it != "field" }
|
||||
?: (expression as? KtNameReferenceExpression)?.getReferencedName()?.takeIf { !isSpecialName(it) }
|
||||
|
||||
return when {
|
||||
argumentName != null -> KotlinNameSuggester.suggestNameByName(argumentName, validator)
|
||||
expression != null -> {
|
||||
val bindingContext = expression.analyze(BodyResolveMode.PARTIAL)
|
||||
val expressionText = expression.text
|
||||
if (expressionText == "it" || expressionText == "field") {
|
||||
if (isSpecialName(expressionText)) {
|
||||
val type = expression.getType(bindingContext)
|
||||
if (type != null) {
|
||||
return KotlinNameSuggester.suggestNamesByType(type, validator, "param").first()
|
||||
@@ -79,6 +79,10 @@ abstract class ChangeFunctionSignatureFix(
|
||||
}
|
||||
}
|
||||
|
||||
private fun isSpecialName(name: String): Boolean {
|
||||
return name == "it" || name == "field"
|
||||
}
|
||||
|
||||
companion object : KotlinSingleIntentionActionFactoryWithDelegate<KtCallElement, CallableDescriptor>() {
|
||||
override fun getElementOfInterest(diagnostic: Diagnostic): KtCallElement? = diagnostic.psiElement.getStrictParentOfType()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user