diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java index fcf57e60bf4..41ae572beff 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOverrideImplementTest.java @@ -39,6 +39,7 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase; import org.jetbrains.jet.plugin.JetLightProjectDescriptor; +import org.jetbrains.jet.utils.UtilsPackage; import org.junit.Assert; import java.util.*; @@ -116,13 +117,13 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF private void doOverrideImplement(OverrideImplementMethodsHandler handler, @Nullable String memberToOverride) { PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getEditor().getCaretModel().getOffset()); - final JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(elementAtCaret, JetClassOrObject.class); + JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(elementAtCaret, JetClassOrObject.class); assertNotNull("Caret should be inside class or object", classOrObject); - final JetFile jetFile = classOrObject.getContainingJetFile(); + JetFile jetFile = classOrObject.getContainingJetFile(); Set descriptors = handler.collectMethodsToGenerate(classOrObject); - final CallableMemberDescriptor singleToOverride; + CallableMemberDescriptor singleToOverride; if (memberToOverride == null) { // Filter out fake overrides of members of Any (equals, hashCode, toString) List filtered = KotlinPackage.filter(descriptors, new Function1() { @@ -156,25 +157,19 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF singleToOverride = candidateToOverride; } - new WriteCommandAction(myFixture.getProject(), myFixture.getFile()) { - @Override - protected void run(@NotNull Result result) throws Throwable { - OverrideImplementMethodsHandler.generateMethods(myFixture.getEditor(), classOrObject, - OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, Collections.singletonList(singleToOverride)) - ); - } - }.execute(); + performGenerateCommand(classOrObject, + OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, Collections.singletonList(singleToOverride))); } private void doMultiOverrideImplement(OverrideImplementMethodsHandler handler) { PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getEditor().getCaretModel().getOffset()); - final JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(elementAtCaret, JetClassOrObject.class); + JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(elementAtCaret, JetClassOrObject.class); assertNotNull("Caret should be inside class or object", classOrObject); - final JetFile jetFile = classOrObject.getContainingJetFile(); + JetFile jetFile = classOrObject.getContainingJetFile(); Set descriptors = handler.collectMethodsToGenerate(classOrObject); - final List descriptorsList = new ArrayList(descriptors); + List descriptorsList = new ArrayList(descriptors); Collections.sort(descriptorsList, new Comparator() { @Override public int compare(@NotNull CallableMemberDescriptor desc1, @NotNull CallableMemberDescriptor desc2) { @@ -182,14 +177,7 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF } }); - new WriteCommandAction(myFixture.getProject(), myFixture.getFile()) { - @Override - protected void run(@NotNull Result result) throws Throwable { - OverrideImplementMethodsHandler.generateMethods( - myFixture.getEditor(), classOrObject, - OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, descriptorsList)); - } - }.execute(); + performGenerateCommand(classOrObject, OverrideImplementMethodsHandler.membersFromDescriptors(jetFile, descriptorsList)); } private void generateImplementation(@NotNull final PsiMethod method) { @@ -207,4 +195,21 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF } }); } + + private void performGenerateCommand( + final JetClassOrObject classOrObject, + final List descriptorsToGenerate + ) { + try { + new WriteCommandAction(myFixture.getProject(), myFixture.getFile()) { + @Override + protected void run(@NotNull Result result) throws Throwable { + OverrideImplementMethodsHandler.generateMethods(myFixture.getEditor(), classOrObject, descriptorsToGenerate); + } + }.performCommand(); + } + catch (Throwable throwable) { + throw UtilsPackage.rethrow(throwable); + } + } } \ No newline at end of file