diff --git a/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java b/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java index 774c034b9521..491fe3813793 100644 --- a/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java +++ b/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java @@ -356,7 +356,7 @@ public class StatementMover extends LineMover { myStatementPartToRemovePass = (PyStatementPart)statementParts.second; } } - if (statementPart2 != null && statementPart1 != null && statementPart1.getParent() == statementPart2.getParent() || + if (!(statementPart1 instanceof PyExceptPart) && statementPart2 != null && statementPart1 != null && statementPart1.getParent() == statementPart2.getParent() || statementPart2 == statementPart1) return true; return false; } diff --git a/python/testData/mover/tryExcept.py b/python/testData/mover/tryExcept.py new file mode 100644 index 000000000000..467e5d2d849e --- /dev/null +++ b/python/testData/mover/tryExcept.py @@ -0,0 +1,8 @@ + +try: + try: + print(zoo(1).foo(2)) + except: + print(zoo(0).foo(2)) # <- move statement up here +except: + zoo(3) \ No newline at end of file diff --git a/python/testData/mover/tryExcept_afterDown.py b/python/testData/mover/tryExcept_afterDown.py new file mode 100644 index 000000000000..12638ae0cca1 --- /dev/null +++ b/python/testData/mover/tryExcept_afterDown.py @@ -0,0 +1,9 @@ + +try: + try: + print(zoo(1).foo(2)) + except: + pass + print(zoo(0).foo(2)) # <- move statement up here +except: + zoo(3) \ No newline at end of file diff --git a/python/testData/mover/tryExcept_afterUp.py b/python/testData/mover/tryExcept_afterUp.py new file mode 100644 index 000000000000..e277e463168f --- /dev/null +++ b/python/testData/mover/tryExcept_afterUp.py @@ -0,0 +1,9 @@ + +try: + try: + print(zoo(1).foo(2)) + print(zoo(0).foo(2)) # <- move statement up here + except: + pass +except: + zoo(3) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java b/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java index 7b6e63aad258..77f5a3cb0bcd 100644 --- a/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java +++ b/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java @@ -25,6 +25,10 @@ public class PyStatementMoverTest extends PyTestCase { doTest(); } + public void testTryExcept() { + doTest(); + } + public void testInnerIf() { doTest(); }