From db473ae29fa46a78209039d954d77bb6baf2624c Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 7 Mar 2008 15:51:54 +0300 Subject: [PATCH] 'yield' parsing fixed --- .../com/jetbrains/python/parsing/StatementParsing.java | 1 + python/testData/psi/YieldStatement.py | 4 +++- python/testData/psi/YieldStatement.txt | 10 +++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/parsing/StatementParsing.java b/python/src/com/jetbrains/python/parsing/StatementParsing.java index f9379fd895bd..9ddc9558e164 100644 --- a/python/src/com/jetbrains/python/parsing/StatementParsing.java +++ b/python/src/com/jetbrains/python/parsing/StatementParsing.java @@ -135,6 +135,7 @@ public class StatementParsing extends Parsing { PsiBuilder.Marker exprStatement = builder.mark(); if (builder.getTokenType() == PyTokenTypes.YIELD_KEYWORD) { getExpressionParser().parseYieldOrTupleExpression(builder, false); + checkEndOfStatement(builder, inSuite); exprStatement.done(PyElementTypes.EXPRESSION_STATEMENT); return; } diff --git a/python/testData/psi/YieldStatement.py b/python/testData/psi/YieldStatement.py index c793fe617796..fb5a98a71fbb 100644 --- a/python/testData/psi/YieldStatement.py +++ b/python/testData/psi/YieldStatement.py @@ -1,2 +1,4 @@ def f(): - yield 42 \ No newline at end of file + yield 42 + +f() \ No newline at end of file diff --git a/python/testData/psi/YieldStatement.txt b/python/testData/psi/YieldStatement.txt index a5c3897eced1..b2e609744d1c 100644 --- a/python/testData/psi/YieldStatement.txt +++ b/python/testData/psi/YieldStatement.txt @@ -14,4 +14,12 @@ PyFile:YieldStatement.py PsiElement(Py:YIELD_KEYWORD)('yield') PsiWhiteSpace(' ') PyNumericLiteralExpression - PsiElement(Py:INTEGER_LITERAL)('42') \ No newline at end of file + PsiElement(Py:INTEGER_LITERAL)('42') + PsiWhiteSpace('\n\n') + PyExpressionStatement + PyCallExpression: f + PyReferenceExpression: f + PsiElement(Py:IDENTIFIER)('f') + PyArgumentList + PsiElement(Py:LPAR)('(') + PsiElement(Py:RPAR)(')') \ No newline at end of file