diff --git a/python/src/com/jetbrains/python/inspections/PyListCreationInspection.java b/python/src/com/jetbrains/python/inspections/PyListCreationInspection.java index 2cb95d8224a1..14cda9c154c6 100644 --- a/python/src/com/jetbrains/python/inspections/PyListCreationInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyListCreationInspection.java @@ -53,7 +53,9 @@ public class PyListCreationInspection extends PyInspection { PyCallExpression callExpression = (PyCallExpression)statement; PyExpression callee = callExpression.getCallee(); if (callee instanceof PyQualifiedExpression) { - if (((PyQualifiedExpression)callee).getQualifier().getText().equals(name)) { + PyExpression qualifier = ((PyQualifiedExpression)callee).getQualifier(); + String funcName = ((PyQualifiedExpression)callee).getReferencedName(); + if (qualifier != null && qualifier.getText().equals(name) && "append".equals(funcName)) { PyArgumentList argList = callExpression.getArgumentList(); if (argList != null) { for (PyExpression argument : argList.getArguments()) { @@ -62,13 +64,14 @@ public class PyListCreationInspection extends PyInspection { availableFix = true; } } + if(availableFix) + quickFix.addStatement(expressionStatement); } } } if (quickFix == null) { return; } - quickFix.addStatement(expressionStatement); expressionStatement = PsiTreeUtil.getNextSiblingOfType(expressionStatement, PyExpressionStatement.class); if (expressionStatement != null) statement = expressionStatement.getExpression(); diff --git a/python/testData/inspections/ListCreation.py b/python/testData/inspections/ListCreation.py new file mode 100644 index 000000000000..20b1e03f97f1 --- /dev/null +++ b/python/testData/inspections/ListCreation.py @@ -0,0 +1,4 @@ +my_list = [m] +my_list.append(1) +my_list.append(var) +do_something() \ No newline at end of file diff --git a/python/testData/inspections/ListCreation_after.py b/python/testData/inspections/ListCreation_after.py new file mode 100644 index 000000000000..8a4be76969f3 --- /dev/null +++ b/python/testData/inspections/ListCreation_after.py @@ -0,0 +1,2 @@ +my_list = [m, 1, var] +do_something() \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java index 9c478afa639c..305b261c550a 100644 --- a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java +++ b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java @@ -215,6 +215,11 @@ public class PyQuickFixTest extends PyLightFixtureTestCase { PyBundle.message("INTN.replace.noteq.operator"), true, true); } + public void testListCreation() { + doInspectionTest("ListCreation.py", PyListCreationInspection.class, + PyBundle.message("QFIX.list.creation"), true, true); + } + @Override @NonNls protected String getTestDataPath() {