mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-48008 Report missing subject expression in match statements
GitOrigin-RevId: 2c49ea19ac0fb5bdda966e4077c45321c397df8a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a4c6272073
commit
70efe3108f
@@ -147,7 +147,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
|
||||
SyntaxTreeBuilder.Marker mark = myBuilder.mark();
|
||||
myBuilder.remapCurrentToken(PyTokenTypes.MATCH_KEYWORD);
|
||||
myBuilder.advanceLexer();
|
||||
myContext.getExpressionParser().parseTupleExpression(true, false, false);
|
||||
myContext.getExpressionParser().parseExpression();
|
||||
if (!matchToken(PyTokenTypes.COLON)) {
|
||||
mark.rollbackTo();
|
||||
myBuilder.remapCurrentToken(PyTokenTypes.IDENTIFIER);
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
match:
|
||||
case 1:
|
||||
pass
|
||||
@@ -0,0 +1,18 @@
|
||||
PyFile:PatternMatchingRecoveryNoSubjectAfterMatch.py
|
||||
PyMatchStatement
|
||||
PsiElement(Py:MATCH_KEYWORD)('match')
|
||||
PsiErrorElement:Expression expected
|
||||
<empty list>
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace('\n ')
|
||||
PyCaseClause
|
||||
PsiElement(Py:CASE_KEYWORD)('case')
|
||||
PsiWhiteSpace(' ')
|
||||
PyLiteralPattern
|
||||
PyNumericLiteralExpression
|
||||
PsiElement(Py:INTEGER_LITERAL)('1')
|
||||
PsiElement(Py:COLON)(':')
|
||||
PsiWhiteSpace('\n ')
|
||||
PyStatementList
|
||||
PyPassStatement
|
||||
PsiElement(Py:PASS_KEYWORD)('pass')
|
||||
@@ -986,6 +986,10 @@ public class PythonParsingTest extends ParsingTestCase {
|
||||
doTest(LanguageLevel.PYTHON310);
|
||||
}
|
||||
|
||||
public void testPatternMatchingRecoveryNoSubjectAfterMatch() {
|
||||
doTest(LanguageLevel.PYTHON310);
|
||||
}
|
||||
|
||||
public void testPatternMatchingRecoveryNoPatternAfterCase() {
|
||||
doTest(LanguageLevel.PYTHON310);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user