a trailing comma in argument list is not an error (PY-4016)

This commit is contained in:
Dmitry Jemerov
2011-06-28 17:56:01 +02:00
parent 5ed2aec92e
commit dba64fbcea
4 changed files with 25 additions and 0 deletions

View File

@@ -157,6 +157,9 @@ public class FunctionParsing extends Parsing {
}
else {
parameter.rollbackTo();
if (atToken(endToken)) {
break;
}
PsiBuilder.Marker invalidElements = myBuilder.mark();
while (!atToken(endToken) && !atToken(PyTokenTypes.LINE_BREAK) && !atToken(PyTokenTypes.COMMA) && !atToken(null)) {
nextToken();

View File

@@ -0,0 +1,2 @@
def some_function(a,):
pass

View File

@@ -0,0 +1,16 @@
PyFile:TrailingCommaInArgList.py
PyFunction('some_function')
PsiElement(Py:DEF_KEYWORD)('def')
PsiWhiteSpace(' ')
PsiElement(Py:IDENTIFIER)('some_function')
PyParameterList
PsiElement(Py:LPAR)('(')
PyNamedParameter('a')
PsiElement(Py:IDENTIFIER)('a')
PsiElement(Py:COMMA)(',')
PsiElement(Py:RPAR)(')')
PsiElement(Py:COLON)(':')
PsiWhiteSpace('\n ')
PyStatementList
PyPassStatement
PsiElement(Py:PASS_KEYWORD)('pass')

View File

@@ -271,6 +271,10 @@ public class PythonParsingTest extends ParsingTestCase {
doTest();
}
public void testTrailingCommaInArgList() { // PY-4016
doTest();
}
public void doTest() {
doTest(LanguageLevel.PYTHON25);
}