Dropped hack in initialization of KotlinParameterInfo which is not needed anymore

This commit is contained in:
Valentin Kipyatkov
2020-03-26 19:37:05 +02:00
parent 4f19dd5fe1
commit f4a245e12a
@@ -71,16 +71,15 @@ class KotlinSuggestedRefactoringExecution(
val parameters = mutableListOf<KotlinParameterInfo>() val parameters = mutableListOf<KotlinParameterInfo>()
var newParameterValueIndex = 0 var newParameterValueIndex = 0
val receiver: KotlinParameterInfo? = if (data.newSignature.receiverType != null) { val receiver: KotlinParameterInfo? = data.newSignature.receiverType?.let { newReceiverType ->
val newTypeInfo = KotlinTypeInfo(text = data.newSignature.receiverType, isCovariant = false) val newTypeInfo = KotlinTypeInfo(text = newReceiverType, isCovariant = false)
if (data.oldSignature.receiverType != null) { if (data.oldSignature.receiverType != null) {
methodDescriptor.receiver!!.apply { currentTypeInfo = newTypeInfo } methodDescriptor.receiver!!.apply { currentTypeInfo = newTypeInfo }
} else { } else {
KotlinParameterInfo(descriptor, -1, "", newTypeInfo) KotlinParameterInfo(descriptor, -1, "", newTypeInfo).apply {
.withDefaultValue(newParameterValues[newParameterValueIndex++]) setNewParameterValue(newParameterValues[newParameterValueIndex++])
}
} }
} else {
null
} }
parameters.addIfNotNull(receiver) parameters.addIfNotNull(receiver)
@@ -105,7 +104,9 @@ class KotlinSuggestedRefactoringExecution(
parameterTypeInfos[index], parameterTypeInfos[index],
defaultValueForParameter = defaultValue, defaultValueForParameter = defaultValue,
modifierList = modifierList modifierList = modifierList
).withDefaultValue(newParameterValues[newParameterValueIndex++]) ).apply {
setNewParameterValue(newParameterValues[newParameterValueIndex++])
}
} else { } else {
KotlinParameterInfo( KotlinParameterInfo(
descriptor, descriptor,
@@ -133,28 +134,11 @@ class KotlinSuggestedRefactoringExecution(
processor.run() processor.run()
} }
//TODO: we can't just set defaultValueForCall due to bug in KotlinParameterInfo private fun KotlinParameterInfo.setNewParameterValue(value: NewParameterValue) {
private fun KotlinParameterInfo.withDefaultValue(value: NewParameterValue): KotlinParameterInfo {
when (value) { when (value) {
is NewParameterValue.AnyVariable -> { is NewParameterValue.AnyVariable -> isUseAnySingleVariable = true
isUseAnySingleVariable = true is NewParameterValue.Expression -> defaultValueForCall = value.expression as KtExpression
return this is NewParameterValue.None -> defaultValueForCall = null
}
is NewParameterValue.Expression -> {
val defaultValueForCall = value.expression as KtExpression
return KotlinParameterInfo(
callableDescriptor, originalIndex, name, originalTypeInfo,
defaultValueForParameter, defaultValueForCall, valOrVar, modifierList
).apply {
currentTypeInfo = this@withDefaultValue.currentTypeInfo
}
}
is NewParameterValue.None -> {
defaultValueForCall = null
return this
}
} }
} }
} }