mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +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 statementPart2 = statementParts.second;
|
||||
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 ||
|
||||
moveToEmptyLine) {
|
||||
myStatementPartToRemovePass = (PyStatementPart)statementParts.second;
|
||||
}
|
||||
}
|
||||
return !(statementPart1 instanceof PyExceptPart) &&
|
||||
final boolean fromExceptToElse = statementPart1 instanceof PyExceptPart && statementPart2 instanceof PyTryPart;
|
||||
return !fromExceptToElse &&
|
||||
statementPart2 != null &&
|
||||
statementPart1 != null &&
|
||||
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();
|
||||
}
|
||||
|
||||
public void testExceptElse() { // PY-6482
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testOneLineCompound() { // PY-5198
|
||||
doTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user