in src/main/kotlin/org/arend/refactoring/changeSignature/ChangeSignatureRefactoringDescriptor.kt [85:107]
fun toParametersInfo(): ArendParametersInfo? {
val properOldParameters = oldParameters.filter {
!it.isThis() && !it.isExternal() && !it.isDataParameter && it.getReferable() !is ArendClassField && (it.classParameterKind == null || it.classParameterKind == ClassParameterKind.OWN_PARAMETER)
}
val properNewParameters = newParameters.filter {
val referable = it.oldParameter?.getReferable()
!it.isThis() && !it.isExternal() && !it.isDataParameter && referable !is ArendClassField && (it.classParameterKind == null || it.classParameterKind == ClassParameterKind.OWN_PARAMETER)
}
val parameterInfo = getParameterInfo(getAffectedDefinition() as? PsiLocatedReferable ?: return null)
val newParameterInfo = ArrayList<ArendTextualParameter>()
for (nP in properNewParameters) {
val oldIndex = if (nP.oldParameter != null) properOldParameters.indexOf(nP.oldParameter) else -1
val isClassifying = if (oldIndex == -1) false else parameterInfo[oldIndex].isClassifying
val isCoerce = if (oldIndex == -1) false else parameterInfo[oldIndex].isCoerce
val isProperty = if (oldIndex == -1) false else parameterInfo[oldIndex].isCoerce
val accessModifier = if (oldIndex == -1) AccessModifier.PUBLIC else parameterInfo[oldIndex].accessModifier
val correspondingReferable = if (oldIndex == -1) null else parameterInfo[oldIndex].correspondingReferable
newParameterInfo.add(ArendTextualParameter(nP.getNameOrUnderscore(), nP.getType(), oldIndex, nP.isExplicit, isClassifying, isCoerce, isProperty, accessModifier, correspondingReferable))
}
return ArendParametersInfo(getAffectedDefinition() as PsiLocatedReferable, newParameterInfo)
}