accept trailing comma in list literal

This commit is contained in:
Dmitry Jemerov
2010-09-23 15:37:34 +04:00
parent 40d77973f1
commit 33515fc44f
4 changed files with 24 additions and 0 deletions
@@ -106,6 +106,9 @@ public class ExpressionParsing extends Parsing {
if (!matchToken(PyTokenTypes.COMMA)) {
builder.error("expected ',' or ']'");
}
if (atToken(PyTokenTypes.RBRACKET)) {
break;
}
if (!parseSingleExpression(isTargetExpression)) {
builder.error(message("PARSE.expected.expr.or.comma.or.bracket"));
break;
@@ -0,0 +1 @@
x = ['a','b',]
@@ -0,0 +1,16 @@
PyFile:TrailingCommaInList.py
PyAssignmentStatement
PyTargetExpression: x
PsiElement(Py:IDENTIFIER)('x')
PsiWhiteSpace(' ')
PsiElement(Py:EQ)('=')
PsiWhiteSpace(' ')
PyListLiteralExpression
PsiElement(Py:LBRACKET)('[')
PyStringLiteralExpression: a
PsiElement(Py:STRING_LITERAL)(''a'')
PsiElement(Py:COMMA)(',')
PyStringLiteralExpression: b
PsiElement(Py:STRING_LITERAL)(''b'')
PsiElement(Py:COMMA)(',')
PsiElement(Py:RBRACKET)(']')
@@ -218,6 +218,10 @@ public class PythonParsingTest extends ParsingTestCase {
doTest();
}
public void testTrailingCommaInList() {
doTest();
}
public void doTest() {
doTest(LanguageLevel.PYTHON25);
}