mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
fixed PY-6482 Move statement: ineffective move down to else statement in try/except/else
This commit is contained in:
@@ -394,13 +394,14 @@ public class StatementMover extends LineMover {
|
|||||||
PyElement statementPart1 = statementParts.first;
|
PyElement statementPart1 = statementParts.first;
|
||||||
PyElement statementPart2 = statementParts.second;
|
PyElement statementPart2 = statementParts.second;
|
||||||
if (statementPart2 instanceof PyStatementPart) {
|
if (statementPart2 instanceof PyStatementPart) {
|
||||||
PyStatementList stList = ((PyStatementPart)statementParts.second).getStatementList();
|
PyStatementList stList = ((PyStatementPart)statementPart2).getStatementList();
|
||||||
if (stList != null && stList.getStatements().length == 1 && stList.getStatements()[0] instanceof PyPassStatement ||
|
if (stList != null && stList.getStatements().length == 1 && stList.getStatements()[0] instanceof PyPassStatement ||
|
||||||
moveToEmptyLine) {
|
moveToEmptyLine) {
|
||||||
myStatementPartToRemovePass = (PyStatementPart)statementParts.second;
|
myStatementPartToRemovePass = (PyStatementPart)statementParts.second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return !(statementPart1 instanceof PyExceptPart) &&
|
final boolean fromExceptToElse = statementPart1 instanceof PyExceptPart && statementPart2 instanceof PyTryPart;
|
||||||
|
return !fromExceptToElse &&
|
||||||
statementPart2 != null &&
|
statementPart2 != null &&
|
||||||
statementPart1 != null &&
|
statementPart1 != null &&
|
||||||
statementPart1.getParent() == statementPart2.getParent() ||
|
statementPart1.getParent() == statementPart2.getParent() ||
|
||||||
|
|||||||
7
python/testData/mover/exceptElse.py
Normal file
7
python/testData/mover/exceptElse.py
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
try:
|
||||||
|
print(zoo(1).foo(2))
|
||||||
|
except:
|
||||||
|
print<caret>(zoo(0).foo(2)) # <- move statement up here
|
||||||
|
else:
|
||||||
|
a = 1
|
||||||
8
python/testData/mover/exceptElse_afterDown.py
Normal file
8
python/testData/mover/exceptElse_afterDown.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
try:
|
||||||
|
print(zoo(1).foo(2))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print<caret>(zoo(0).foo(2)) # <- move statement up here
|
||||||
|
a = 1
|
||||||
8
python/testData/mover/exceptElse_afterUp.py
Normal file
8
python/testData/mover/exceptElse_afterUp.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
try:
|
||||||
|
print(zoo(1).foo(2))
|
||||||
|
print<caret>(zoo(0).foo(2)) # <- move statement up here
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
a = 1
|
||||||
@@ -141,6 +141,10 @@ public class PyStatementMoverTest extends PyTestCase {
|
|||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testExceptElse() { // PY-6482
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testOneLineCompound() { // PY-5198
|
public void testOneLineCompound() { // PY-5198
|
||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user