mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed PY-2970 Join 2 if's intention alters behavior of code
This commit is contained in:
@@ -45,7 +45,8 @@ public class PyJoinIfIntention extends BaseIntentionAction {
|
||||
if (outer != null) {
|
||||
if (outer.getElsePart() != null || outer.getElifParts().length > 0) return false;
|
||||
PyStatement firstStatement = getFirstStatement(outer);
|
||||
|
||||
PyStatementList outerStList = outer.getIfPart().getStatementList();
|
||||
if (outerStList != null && outerStList.getStatements().length != 1) return false;
|
||||
if (firstStatement instanceof PyIfStatement) {
|
||||
final PyIfStatement inner = (PyIfStatement)firstStatement;
|
||||
if (inner.getElsePart() != null || inner.getElifParts().length > 0) return false;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
class A:
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.uses_remaining_this_turn = None
|
||||
self.effects = None
|
||||
|
||||
def foo(self):
|
||||
if self.can_act<caret>ivate():
|
||||
if self.effect_queue is None:
|
||||
self.effect_queue = list(self.effects)
|
||||
for effect in self.effect_queue:
|
||||
effect.activate(source, targets)
|
||||
self.effect_queue = None
|
||||
self.uses_remaining_this_turn -= 1
|
||||
|
||||
def can_activate(self):
|
||||
pass
|
||||
@@ -125,6 +125,10 @@ public class PyIntentionTest extends PyLightFixtureTestCase {
|
||||
doNegativeTest(PyBundle.message("INTN.join.if.text"));
|
||||
}
|
||||
|
||||
public void testJoinIfMultiStatements() { //PY-2970
|
||||
doNegativeTest(PyBundle.message("INTN.join.if.text"));
|
||||
}
|
||||
|
||||
public void testDictConstructorToLiteralForm() {
|
||||
doTest(PyBundle.message("INTN.convert.dict.constructor.to.dict.literal"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user