diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java index 2ae2739bd8a..fb06d504935 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java @@ -222,6 +222,13 @@ public class KotlinExtractFunctionDialog extends DialogWrapper { RefactoringPackage.checkConflictsInteractively( project, conflicts, + new Function0() { + @Override + public Unit invoke() { + close(OK_EXIT_CODE); + return Unit.INSTANCE$; + } + }, new Function0() { @Override public Unit invoke() { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt index c9009979351..2dcc585d363 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt @@ -175,13 +175,21 @@ public fun PsiElement.getExtractionContainers(strict: Boolean = true, includeAll } } -public fun Project.checkConflictsInteractively(conflicts: MultiMap, onAccept: () -> Unit) { +public fun Project.checkConflictsInteractively( + conflicts: MultiMap, + onShowConflicts: () -> Unit = {}, + onAccept: () -> Unit) { if (!conflicts.isEmpty()) { if (ApplicationManager.getApplication()!!.isUnitTestMode()) throw ConflictsInTestsException(conflicts.values()) - val dialog = ConflictsDialog(this, conflicts, onAccept) + val dialog = ConflictsDialog(this, conflicts) { onAccept() } dialog.show() - if (!dialog.isOK()) return + if (!dialog.isOK()) { + if (dialog.isShowConflicts()) { + onShowConflicts() + } + return + } } onAccept()