diff --git a/python/src/com/jetbrains/python/actions/DictCreationQuickFix.java b/python/src/com/jetbrains/python/actions/DictCreationQuickFix.java index ddb56f925f59..a0276a5590e7 100644 --- a/python/src/com/jetbrains/python/actions/DictCreationQuickFix.java +++ b/python/src/com/jetbrains/python/actions/DictCreationQuickFix.java @@ -62,7 +62,18 @@ public class DictCreationQuickFix implements LocalQuickFix { final PySubscriptionExpression subscription = (PySubscriptionExpression)targetToValue.first; final PyExpression indexExpression = subscription.getIndexExpression(); assert indexExpression != null; - statements.add(indexExpression.getText() + ": " + targetToValue.second.getText()); + final String indexText; + if (indexExpression instanceof PyTupleExpression) + indexText = "("+indexExpression.getText()+")"; + else + indexText = indexExpression.getText(); + + final String valueText; + if (targetToValue.second instanceof PyTupleExpression) + valueText = "("+targetToValue.second.getText()+")"; + else + valueText = targetToValue.second.getText(); + statements.add(indexText + ": " + valueText); statement.delete(); } statement = nextStatement; diff --git a/python/testData/inspections/DictCreationTuple.py b/python/testData/inspections/DictCreationTuple.py new file mode 100644 index 000000000000..6d8ed916e890 --- /dev/null +++ b/python/testData/inspections/DictCreationTuple.py @@ -0,0 +1,2 @@ +dict = {} +dict[1,2] = 3,4 \ No newline at end of file diff --git a/python/testData/inspections/DictCreationTuple_after.py b/python/testData/inspections/DictCreationTuple_after.py new file mode 100644 index 000000000000..2fd144f19bd7 --- /dev/null +++ b/python/testData/inspections/DictCreationTuple_after.py @@ -0,0 +1 @@ +dict = {(1, 2): (3, 4)} diff --git a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java index 9ecd8a39aafe..dd8aac6b309b 100644 --- a/python/testSrc/com/jetbrains/python/PyQuickFixTest.java +++ b/python/testSrc/com/jetbrains/python/PyQuickFixTest.java @@ -123,6 +123,10 @@ public class PyQuickFixTest extends PyTestCase { doInspectionTest("DictCreation.py", PyDictCreationInspection.class, PyBundle.message("QFIX.dict.creation"), true, true); } + public void testDictCreationTuple() { //PY-6283 + doInspectionTest("DictCreationTuple.py", PyDictCreationInspection.class, PyBundle.message("QFIX.dict.creation"), true, true); + } + public void testTransformClassicClass() { doInspectionTest("TransformClassicClass.py", PyClassicStyleClassInspection.class, PyBundle.message("QFIX.classic.class.transform"), true, true);