From 56b50d1dffb9ef2e957dc329c433879910eb1b0a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 31 Oct 2013 20:42:58 +0100 Subject: [PATCH] report parsing error if no expression was found after * (PY-10177 part 1) --- .../jetbrains/python/parsing/ExpressionParsing.java | 1 + python/testData/psi/LoneStar.py | 1 + python/testData/psi/LoneStar.txt | 13 +++++++++++++ .../com/jetbrains/python/PythonParsingTest.java | 4 ++++ 4 files changed, 19 insertions(+) create mode 100644 python/testData/psi/LoneStar.py create mode 100644 python/testData/psi/LoneStar.txt diff --git a/python/src/com/jetbrains/python/parsing/ExpressionParsing.java b/python/src/com/jetbrains/python/parsing/ExpressionParsing.java index 9181d02dc593..65c791a33aed 100644 --- a/python/src/com/jetbrains/python/parsing/ExpressionParsing.java +++ b/python/src/com/jetbrains/python/parsing/ExpressionParsing.java @@ -772,6 +772,7 @@ public class ExpressionParsing extends Parsing { PsiBuilder.Marker starExpr = myBuilder.mark(); nextToken(); if (!parseBitwiseORExpression(isTargetExpression)) { + myBuilder.error(message("PARSE.expected.expression")); starExpr.drop(); return false; } diff --git a/python/testData/psi/LoneStar.py b/python/testData/psi/LoneStar.py new file mode 100644 index 000000000000..b54e94ecac2c --- /dev/null +++ b/python/testData/psi/LoneStar.py @@ -0,0 +1 @@ +x = (*) diff --git a/python/testData/psi/LoneStar.txt b/python/testData/psi/LoneStar.txt new file mode 100644 index 000000000000..8dc1b17e3d36 --- /dev/null +++ b/python/testData/psi/LoneStar.txt @@ -0,0 +1,13 @@ +PyFile:LoneStar.py + PyAssignmentStatement + PyTargetExpression: x + PsiElement(Py:IDENTIFIER)('x') + PsiWhiteSpace(' ') + PsiElement(Py:EQ)('=') + PsiWhiteSpace(' ') + PyParenthesizedExpression + PsiElement(Py:LPAR)('(') + PsiElement(Py:MULT)('*') + PsiErrorElement:expression expected + + PsiElement(Py:RPAR)(')') \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonParsingTest.java b/python/testSrc/com/jetbrains/python/PythonParsingTest.java index 34119cf248ef..87f9e535ade2 100644 --- a/python/testSrc/com/jetbrains/python/PythonParsingTest.java +++ b/python/testSrc/com/jetbrains/python/PythonParsingTest.java @@ -398,6 +398,10 @@ public class PythonParsingTest extends ParsingTestCase { doTest(); } + public void testLoneStar() { // PY-10177 + doTest(); + } + public void doTest(LanguageLevel languageLevel) { LanguageLevel prev = myLanguageLevel; myLanguageLevel = languageLevel;