--- a/RefactoringRope/ChangeSignatureDialog.py Fri Oct 11 18:42:45 2019 +0200 +++ b/RefactoringRope/ChangeSignatureDialog.py Fri Oct 11 19:05:23 2019 +0200 @@ -12,8 +12,9 @@ import copy from PyQt5.QtCore import pyqtSlot, Qt -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QListWidgetItem, \ - QAbstractButton +from PyQt5.QtWidgets import ( + QDialog, QDialogButtonBox, QListWidgetItem, QAbstractButton +) from .Ui_ChangeSignatureDialog import Ui_ChangeSignatureDialog from .RefactoringDialogBase import RefactoringDialogBase @@ -216,6 +217,8 @@ for index, pair in enumerate(definition_info): if pair[0] == name: return index + + return -1 def _calculateChanges(self): """ @@ -229,8 +232,9 @@ index = self.__getParameterIndex( definition_info, itm.data(ChangeSignatureDialog.NameRole)) - removals.append(index) - del definition_info[index] + if index >= 0: + removals.append(index) + del definition_info[index] additions = [] for index in range(self.parameterList.count()): @@ -249,8 +253,9 @@ for row in range(self.parameterList.count()): itm = self.parameterList.item(row) name = itm.data(ChangeSignatureDialog.NameRole) - newOrdering.append( - self.__getParameterIndex(definition_info, name)) + index = self.__getParameterIndex(definition_info, name) + if index >= 0: + newOrdering.append(index) autodef = self.autodefEdit.text() if not autodef: autodef = None