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 5c9949bbd932..c0ffc5895b28 100644 --- a/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java +++ b/python/src/com/jetbrains/python/codeInsight/editorActions/moveUpDown/StatementMover.java @@ -162,15 +162,15 @@ public class StatementMover extends LineMover { element2 = tmp; } } - PyElement parent2 = PsiTreeUtil.getParentOfType(element2, PyFunction.class, false); - PyElement parent1 = PsiTreeUtil.getParentOfType(myStatementToMove, PyFunction.class, false); + PyElement parent2 = PsiTreeUtil.getParentOfType(element2, PyFunction.class); + PyElement parent1 = PsiTreeUtil.getParentOfType(myStatementToMove, PyFunction.class); if (parent2 != null && parent2 != parent1) { TextRange textRange2 = parent2.getTextRange(); info.toMove2 = new LineRange(doc.getLineNumber(textRange2.getStartOffset()), doc.getLineNumber(textRange2.getEndOffset())+1); } - parent2 = PsiTreeUtil.getParentOfType(element2, PyClass.class, false); - parent1 = PsiTreeUtil.getParentOfType(myStatementToMove, PyClass.class, false); + parent2 = PsiTreeUtil.getParentOfType(element2, PyClass.class); + parent1 = PsiTreeUtil.getParentOfType(myStatementToMove, PyClass.class); if (parent2 != null && parent2 != parent1) { TextRange textRange2 = parent2.getTextRange(); info.toMove2 = new LineRange(doc.getLineNumber(textRange2.getStartOffset()), diff --git a/python/testData/mover/functionDown.py b/python/testData/mover/functionDown.py new file mode 100644 index 000000000000..58a37aa367ba --- /dev/null +++ b/python/testData/mover/functionDown.py @@ -0,0 +1,5 @@ +def a(): + + def b(): + pass + zoo(1) \ No newline at end of file diff --git a/python/testData/mover/functionDown_afterDown.py b/python/testData/mover/functionDown_afterDown.py new file mode 100644 index 000000000000..8fb35e93511d --- /dev/null +++ b/python/testData/mover/functionDown_afterDown.py @@ -0,0 +1,5 @@ +def a(): + + zoo(1) + def b(): + pass diff --git a/python/testData/mover/functionDown_afterUp.py b/python/testData/mover/functionDown_afterUp.py new file mode 100644 index 000000000000..8fd78681aa19 --- /dev/null +++ b/python/testData/mover/functionDown_afterUp.py @@ -0,0 +1,5 @@ +def a(): + + def b(): + pass + zoo(1) \ 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 abbc851bb806..70d754dd680b 100644 --- a/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java +++ b/python/testSrc/com/jetbrains/python/PyStatementMoverTest.java @@ -91,4 +91,8 @@ public class PyStatementMoverTest extends PyTestCase { public void testNestedBlock() { // PY-1343 doTest(); } + + public void testFunctionDown() { + doTest(); + } }