report missing value expression in dict literal as error (PY-2791)

This commit is contained in:
Dmitry Jemerov
2011-02-22 16:05:06 +01:00
parent eb02840ae6
commit 53791956d1
4 changed files with 30 additions and 0 deletions
@@ -219,6 +219,7 @@ public class ExpressionParsing extends Parsing {
}
checkMatches(PyTokenTypes.COLON, message("PARSE.expected.colon"));
if (!parseSingleExpression(false)) {
myBuilder.error("value expression expected");
marker.drop();
return false;
}
+1
View File
@@ -0,0 +1 @@
dl = {key1: value1, key2:}
+24
View File
@@ -0,0 +1,24 @@
PyFile:DictMissingValue.py
PyAssignmentStatement
PyTargetExpression: dl
PsiElement(Py:IDENTIFIER)('dl')
PsiWhiteSpace(' ')
PsiElement(Py:EQ)('=')
PsiWhiteSpace(' ')
PyDictLiteralExpression
PsiElement(Py:LBRACE)('{')
PyKeyValueExpression
PyReferenceExpression: key1
PsiElement(Py:IDENTIFIER)('key1')
PsiElement(Py:COLON)(':')
PsiWhiteSpace(' ')
PyReferenceExpression: value1
PsiElement(Py:IDENTIFIER)('value1')
PsiElement(Py:COMMA)(',')
PsiWhiteSpace(' ')
PyReferenceExpression: key2
PsiElement(Py:IDENTIFIER)('key2')
PsiElement(Py:COLON)(':')
PsiErrorElement:value expression expected
<empty list>
PsiElement(Py:RBRACE)('}')
@@ -247,6 +247,10 @@ public class PythonParsingTest extends ParsingTestCase {
doTest();
}
public void testDictMissingValue() { // PY-2791
doTest();
}
public void doTest() {
doTest(LanguageLevel.PYTHON25);
}