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