Introduce Type Parameter: Do not show duplicate dialog under write action

#KT-20335 Fixed
This commit is contained in:
Alexey Sedunov
2017-09-28 20:28:21 +03:00
parent 25b6dac7b5
commit ee9a6ca53e
@@ -113,7 +113,6 @@ object KotlinIntroduceTypeParameterHandler : RefactoringActionHandler {
val restoredOwner = restoredTypeParameter.getStrictParentOfType<KtTypeParameterListOwner>() ?: return@postRename val restoredOwner = restoredTypeParameter.getStrictParentOfType<KtTypeParameterListOwner>() ?: return@postRename
val restoredOriginalTypeElement = typeElementToExtractPointer.element ?: return@postRename val restoredOriginalTypeElement = typeElementToExtractPointer.element ?: return@postRename
runWriteAction {
val parameterRefElement = KtPsiFactory(project).createType(restoredTypeParameter.name ?: "_").typeElement!! val parameterRefElement = KtPsiFactory(project).createType(restoredTypeParameter.name ?: "_").typeElement!!
val duplicateRanges = restoredOriginalTypeElement val duplicateRanges = restoredOriginalTypeElement
@@ -126,7 +125,9 @@ object KotlinIntroduceTypeParameterHandler : RefactoringActionHandler {
} }
.map { it.range.elements.toRange() } .map { it.range.elements.toRange() }
runWriteAction {
restoredOriginalTypeElement.replace(parameterRefElement) restoredOriginalTypeElement.replace(parameterRefElement)
}
processDuplicates( processDuplicates(
duplicateRanges.keysToMap { duplicateRanges.keysToMap {
@@ -146,7 +147,6 @@ object KotlinIntroduceTypeParameterHandler : RefactoringActionHandler {
editor.caretModel.moveToOffset(it.startOffset) editor.caretModel.moveToOffset(it.startOffset)
} }
} }
}
if (!ApplicationManager.getApplication().isUnitTestMode) { if (!ApplicationManager.getApplication().isUnitTestMode) {
val dataContext = SimpleDataContext.getSimpleContext(CommonDataKeys.PSI_ELEMENT.name, newTypeParameter, val dataContext = SimpleDataContext.getSimpleContext(CommonDataKeys.PSI_ELEMENT.name, newTypeParameter,