i18n: Extract Python parsing errors, fix their capitalization and format

GitOrigin-RevId: a7374f1cb1358005b371fcfdeb743a24e04e1fbf
This commit is contained in:
Mikhail Golubev
2020-08-17 14:43:18 +03:00
committed by intellij-monorepo-bot
parent cee12a385c
commit 91d49d6c87
94 changed files with 223 additions and 219 deletions

View File

@@ -56,9 +56,9 @@ ANN.method.$0.removed.use.$1=Method ''{0}'' has been removed, use ''{1}'' instea
ANN.method.$0.removed=Method ''{0}'' removed ANN.method.$0.removed=Method ''{0}'' removed
### parsing ### parsing
PARSE.expected.expression=expression expected PARSE.expected.expression=Expression expected
PARSE.expected.rbracket=']' expected PARSE.expected.rbracket=']' expected
PARSE.expected.expr.or.comma.or.bracket=expected expression, ',' or ']' PARSE.expected.expr.or.comma.or.bracket=Expected expression, ',' or ']'
PARSE.expected.in='in' expected PARSE.expected.in='in' expected
PARSE.expected.for.or.bracket=']' or 'for' expected PARSE.expected.for.or.bracket=']' or 'for' expected
PARSE.expected.comma=',' expected PARSE.expected.comma=',' expected
@@ -67,7 +67,7 @@ PARSE.expected.rpar=')' expected
PARSE.expected.lpar='(' expected PARSE.expected.lpar='(' expected
PARSE.expected.rbrace='}' expected PARSE.expected.rbrace='}' expected
PARSE.expected.tick='`' (backtick) expected PARSE.expected.tick='`' (backtick) expected
PARSE.expected.name=name expected PARSE.expected.name=Name expected
PARSE.expected.colon.or.rbracket=':' or ']' expected PARSE.expected.colon.or.rbracket=':' or ']' expected
PARSE.expected.comma.or.rpar=',' or ')' expected PARSE.expected.comma.or.rpar=',' or ')' expected
PARSE.expected.else='else' expected PARSE.expected.else='else' expected
@@ -76,7 +76,7 @@ PARSE.expected.identifier=Identifier expected
PARSE.expected.comma.lpar.rpar=',' or '(' or ')' expected PARSE.expected.comma.lpar.rpar=',' or '(' or ')' expected
PARSE.expected.statement.break=Statement break expected PARSE.expected.statement.break=Statement break expected
PARSE.expected.@.or.def='@' or 'def' expected PARSE.expected.@.or.def='@' or 'def' expected
PARSE.expected.formal.param.name=formal parameter name expected PARSE.expected.formal.param.name=Formal parameter name expected
PARSE.0.expected={0} expected PARSE.0.expected={0} expected
PARSE.expected.ellipsis='...' expected PARSE.expected.ellipsis='...' expected
PARSE.string.literal.expected=string literal expected PARSE.string.literal.expected=string literal expected
@@ -87,6 +87,13 @@ PARSE.newline.expected=newline expected
PARSE.eq.expected='=' expected PARSE.eq.expected='=' expected
PARSE.from.expected='from' expected PARSE.from.expected='from' expected
PARSE.gt.expected='>' expected PARSE.gt.expected='>' expected
PARSE.expected.fstring.quote={0} expected
PARSE.expected.fstring.rbrace='}' expected
PARSE.expected.fstring.colon.or.rbrace=: or '}' expected
PARSE.expected.fstring.type.conversion.or.colon.or.rbrace=Type conversion, ':' or '}' expected
PARSE.single.star.parameter.not.supported.py2=Single star parameter is not supported in Python 2
PARSE.async.keyword.not.expected.here='async' keyword is not expected here
PARSE.keyword.cannot.be.used.as.identifier.py2=''{0}'' keyword can''t be used as identifier in Python 2
statement.expected.found.0=Statement expected, found {0} statement.expected.found.0=Statement expected, found {0}
unexpected.indent=Unexpected indent unexpected.indent=Unexpected indent
@@ -102,21 +109,20 @@ import.expected='import' expected
def.or.with.or.for.expected='def' or 'with' or 'for' expected def.or.with.or.for.expected='def' or 'with' or 'for' expected
rbracket.or.comma.expected=']' or ',' expected rbracket.or.comma.expected=']' or ',' expected
unexpected.expression.syntax=Unexpected expression syntax unexpected.expression.syntax=Unexpected expression syntax
tuple.expression.expected=tuple expression expected tuple.expression.expected=Tuple expression expected
value.expression.expected=value expression expected value.expression.expected=Value expression expected
unexpected.expression.part=unexpected expression part unexpected.expression.part=Unexpected expression part
unexpected.f.string.token=unexpected f-string token unexpected.f.string.token=Unexpected f-string token
can.t.assign.to.await.expression=can't assign to await expression can.t.assign.to.await.expression=Can't assign to await expression
for.expected='for' expected for.expected='for' expected
rarrow.expected='->' expected rarrow.expected='->' expected
unexpected.tokens=unexpected tokens unexpected.tokens=Unexpected tokens
enable.in.python.3=Enable in Python 3+ enable.in.python.3=Enable in Python 3+
PARSE.function.type.annotations.py2=Type annotations are unsupported in Python 2 PARSE.function.type.annotations.py2=Type annotations are unsupported in Python 2
PARSE.function.return.type.annotations.py2=Return type annotations are unsupported in Python 2 PARSE.function.return.type.annotations.py2=Return type annotations are unsupported in Python 2
PARSE.console.multiline.magic.warn=Multiline magic can't be used as an expression PARSE.console.multiline.magic.warn=Multiline magic can't be used as an expression
PARSE.console.identifier.expected=Identifier expected.
PARSE.console.help.request.warn=Help request must follow the name PARSE.console.help.request.warn=Help request must follow the name
### quick doc generator ### quick doc generator

View File

@@ -16,6 +16,7 @@
package com.jetbrains.python.codeInsight.functionTypeComments; package com.jetbrains.python.codeInsight.functionTypeComments;
import com.intellij.lang.SyntaxTreeBuilder; import com.intellij.lang.SyntaxTreeBuilder;
import com.intellij.openapi.util.NlsContexts.ParsingError;
import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IElementType;
import com.jetbrains.python.PyElementTypes; import com.jetbrains.python.PyElementTypes;
import com.jetbrains.python.PyPsiBundle; import com.jetbrains.python.PyPsiBundle;
@@ -26,7 +27,6 @@ import com.jetbrains.python.parsing.ParsingContext;
import com.jetbrains.python.parsing.PyParser; import com.jetbrains.python.parsing.PyParser;
import com.jetbrains.python.parsing.StatementParsing; import com.jetbrains.python.parsing.StatementParsing;
import com.jetbrains.python.psi.LanguageLevel; import com.jetbrains.python.psi.LanguageLevel;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -119,7 +119,7 @@ public class PyFunctionTypeAnnotationParser extends PyParser {
listMark.done(PyFunctionTypeAnnotationElementTypes.PARAMETER_TYPE_LIST); listMark.done(PyFunctionTypeAnnotationElementTypes.PARAMETER_TYPE_LIST);
} }
private void recoverUntilMatches(@NotNull @Nls String errorMessage, IElementType @NotNull ... types) { private void recoverUntilMatches(@NotNull @ParsingError String errorMessage, IElementType @NotNull ... types) {
final SyntaxTreeBuilder.Marker errorMarker = myBuilder.mark(); final SyntaxTreeBuilder.Marker errorMarker = myBuilder.mark();
boolean hasNonWhitespaceTokens = false; boolean hasNonWhitespaceTokens = false;
while (!(atAnyOfTokens(types) || myBuilder.eof())) { while (!(atAnyOfTokens(types) || myBuilder.eof())) {

View File

@@ -18,6 +18,7 @@ package com.jetbrains.python.parsing;
import com.intellij.lang.SyntaxTreeBuilder; import com.intellij.lang.SyntaxTreeBuilder;
import com.intellij.lang.WhitespacesAndCommentsBinder; import com.intellij.lang.WhitespacesAndCommentsBinder;
import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.NlsContexts.ParsingError;
import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet; import com.intellij.psi.tree.TokenSet;
import com.jetbrains.python.PyElementTypes; import com.jetbrains.python.PyElementTypes;
@@ -139,12 +140,12 @@ public class ExpressionParsing extends Parsing {
} }
// Can be the end of an enclosing f-string, so leave it in the stream // Can be the end of an enclosing f-string, so leave it in the stream
else { else {
builder.mark().error(message("PARSE.0.expected", openingQuotes)); builder.mark().error(message("PARSE.expected.fstring.quote", openingQuotes));
} }
break; break;
} }
else if (atToken(PyTokenTypes.STATEMENT_BREAK)) { else if (atToken(PyTokenTypes.STATEMENT_BREAK)) {
builder.mark().error(message("PARSE.0.expected", openingQuotes)); builder.mark().error(message("PARSE.expected.fstring.quote", openingQuotes));
break; break;
} }
else { else {
@@ -191,11 +192,11 @@ public class ExpressionParsing extends Parsing {
if (hasFormatPart) { if (hasFormatPart) {
parseFStringFragmentFormatPart(); parseFStringFragmentFormatPart();
} }
String errorMessage = "} expected"; @ParsingError String errorMessage = message("PARSE.expected.fstring.rbrace");
if (!hasFormatPart && !atToken(PyTokenTypes.FSTRING_END)) { if (!hasFormatPart && !atToken(PyTokenTypes.FSTRING_END)) {
errorMessage = ": or " + errorMessage; errorMessage = message("PARSE.expected.fstring.colon.or.rbrace");
if (!hasTypeConversion) { if (!hasTypeConversion) {
errorMessage = "type conversion, " + errorMessage; errorMessage = message("PARSE.expected.fstring.type.conversion.or.colon.or.rbrace");
} }
} }

View File

@@ -214,7 +214,7 @@ public class FunctionParsing extends Parsing {
if (myContext.getLanguageLevel().isPython2()) { if (myContext.getLanguageLevel().isPython2()) {
parameter.rollbackTo(); parameter.rollbackTo();
parameter = myBuilder.mark(); parameter = myBuilder.mark();
advanceError(myBuilder, "Single star parameter is not supported in Python 2"); advanceError(myBuilder, message("PARSE.single.star.parameter.not.supported.py2"));
} }
parameter.done(PyElementTypes.SINGLE_STAR_PARAMETER); parameter.done(PyElementTypes.SINGLE_STAR_PARAMETER);
return true; return true;

View File

@@ -17,13 +17,13 @@ package com.jetbrains.python.parsing;
import com.intellij.lang.SyntaxTreeBuilder; import com.intellij.lang.SyntaxTreeBuilder;
import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.NlsContexts.ParsingError;
import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet; import com.intellij.psi.tree.TokenSet;
import com.jetbrains.python.PyElementTypes; import com.jetbrains.python.PyElementTypes;
import com.jetbrains.python.PyPsiBundle; import com.jetbrains.python.PyPsiBundle;
import com.jetbrains.python.PyTokenTypes; import com.jetbrains.python.PyTokenTypes;
import com.jetbrains.python.psi.PyElementType; import com.jetbrains.python.psi.PyElementType;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -56,7 +56,7 @@ public class Parsing {
return getParsingContext().getFunctionParser(); return getParsingContext().getFunctionParser();
} }
protected boolean checkMatches(final IElementType token, @NotNull @Nls String message) { protected boolean checkMatches(final IElementType token, @NotNull @ParsingError String message) {
if (myBuilder.getTokenType() == token) { if (myBuilder.getTokenType() == token) {
myBuilder.advanceLexer(); myBuilder.advanceLexer();
return true; return true;
@@ -118,7 +118,7 @@ public class Parsing {
protected void advanceAsync(boolean falseAsync) { protected void advanceAsync(boolean falseAsync) {
if (falseAsync) { if (falseAsync) {
advanceError(myBuilder, "'async' keyword is not expected here"); advanceError(myBuilder, PyPsiBundle.message("PARSE.async.keyword.not.expected.here"));
} }
else { else {
myBuilder.advanceLexer(); myBuilder.advanceLexer();
@@ -128,14 +128,14 @@ public class Parsing {
protected static void advanceIdentifierLike(@NotNull SyntaxTreeBuilder builder) { protected static void advanceIdentifierLike(@NotNull SyntaxTreeBuilder builder) {
if (isFalseIdentifier(builder)) { if (isFalseIdentifier(builder)) {
String tokenText = builder.getTokenText(); String tokenText = builder.getTokenText();
advanceError(builder, "'" + tokenText + "' keyword can't be used as identifier in Python 2"); advanceError(builder, PyPsiBundle.message("PARSE.keyword.cannot.be.used.as.identifier.py2", tokenText));
} }
else { else {
builder.advanceLexer(); builder.advanceLexer();
} }
} }
protected static void advanceError(@NotNull SyntaxTreeBuilder builder, @NotNull String message) { protected static void advanceError(@NotNull SyntaxTreeBuilder builder, @NotNull @ParsingError String message) {
final SyntaxTreeBuilder.Marker err = builder.mark(); final SyntaxTreeBuilder.Marker err = builder.mark();
builder.advanceLexer(); builder.advanceLexer();
err.error(message); err.error(message);

View File

@@ -55,9 +55,6 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
@NonNls public static final String TOK_ASYNC = PyNames.ASYNC; @NonNls public static final String TOK_ASYNC = PyNames.ASYNC;
@NonNls protected static final String TOK_AWAIT = PyNames.AWAIT; @NonNls protected static final String TOK_AWAIT = PyNames.AWAIT;
private static final String EXPRESSION_EXPECTED = "Expression expected";
public static final String IDENTIFIER_EXPECTED = "Identifier expected";
protected enum Phase {NONE, FROM, FUTURE, IMPORT} // 'from __future__ import' phase protected enum Phase {NONE, FROM, FUTURE, IMPORT} // 'from __future__ import' phase
private Phase myFutureImportPhase = Phase.NONE; private Phase myFutureImportPhase = Phase.NONE;
@@ -223,7 +220,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
statementType = PyElementTypes.AUG_ASSIGNMENT_STATEMENT; statementType = PyElementTypes.AUG_ASSIGNMENT_STATEMENT;
builder.advanceLexer(); builder.advanceLexer();
if (!getExpressionParser().parseYieldOrTupleExpression(false)) { if (!getExpressionParser().parseYieldOrTupleExpression(false)) {
builder.error(EXPRESSION_EXPECTED); builder.error(PyPsiBundle.message("PARSE.expected.expression"));
} }
} }
else if (atToken(PyTokenTypes.EQ) || (atToken(PyTokenTypes.COLON) && checkLanguageLevel && myContext.getLanguageLevel().isPy3K())) { else if (atToken(PyTokenTypes.EQ) || (atToken(PyTokenTypes.COLON) && checkLanguageLevel && myContext.getLanguageLevel().isPy3K())) {
@@ -246,7 +243,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
final boolean isYieldExpr = builder.getTokenType() == PyTokenTypes.YIELD_KEYWORD; final boolean isYieldExpr = builder.getTokenType() == PyTokenTypes.YIELD_KEYWORD;
if (!getExpressionParser().parseYieldOrTupleExpression(false)) { if (!getExpressionParser().parseYieldOrTupleExpression(false)) {
maybeExprMarker.drop(); maybeExprMarker.drop();
builder.error(EXPRESSION_EXPECTED); builder.error(PyPsiBundle.message("PARSE.expected.expression"));
break; break;
} }
if (builder.getTokenType() == PyTokenTypes.EQ) { if (builder.getTokenType() == PyTokenTypes.EQ) {
@@ -418,13 +415,13 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
if (myBuilder.getTokenType() == PyTokenTypes.COMMA) { if (myBuilder.getTokenType() == PyTokenTypes.COMMA) {
myBuilder.advanceLexer(); myBuilder.advanceLexer();
if (!getExpressionParser().parseSingleExpression(false)) { if (!getExpressionParser().parseSingleExpression(false)) {
myContext.getBuilder().error(EXPRESSION_EXPECTED); myContext.getBuilder().error(PyPsiBundle.message("PARSE.expected.expression"));
} }
} }
checkEndOfStatement(); checkEndOfStatement();
} }
else { else {
myContext.getBuilder().error(EXPRESSION_EXPECTED); myContext.getBuilder().error(PyPsiBundle.message("PARSE.expected.expression"));
} }
assertStatement.done(PyElementTypes.ASSERT_STATEMENT); assertStatement.done(PyElementTypes.ASSERT_STATEMENT);
} }
@@ -559,7 +556,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
return id_text; return id_text;
} }
else { else {
myBuilder.error(IDENTIFIER_EXPECTED); myBuilder.error(PyPsiBundle.message("PARSE.expected.identifier"));
idMarker.drop(); idMarker.drop();
} }
return null; return null;
@@ -577,7 +574,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
protected boolean parseDottedNameAsAware(boolean expect_as, boolean optional) { protected boolean parseDottedNameAsAware(boolean expect_as, boolean optional) {
if (myBuilder.getTokenType() != PyTokenTypes.IDENTIFIER) { if (myBuilder.getTokenType() != PyTokenTypes.IDENTIFIER) {
if (optional) return true; if (optional) return true;
myBuilder.error(IDENTIFIER_EXPECTED); myBuilder.error(PyPsiBundle.message("PARSE.expected.identifier"));
return false; return false;
} }
SyntaxTreeBuilder.Marker marker = myBuilder.mark(); SyntaxTreeBuilder.Marker marker = myBuilder.mark();
@@ -588,7 +585,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
while (myBuilder.getTokenType() == PyTokenTypes.DOT) { while (myBuilder.getTokenType() == PyTokenTypes.DOT) {
marker = marker.precede(); marker = marker.precede();
myBuilder.advanceLexer(); myBuilder.advanceLexer();
checkMatches(PyTokenTypes.IDENTIFIER, IDENTIFIER_EXPECTED); checkMatches(PyTokenTypes.IDENTIFIER, PyPsiBundle.message("PARSE.expected.identifier"));
marker.done(getReferenceType()); marker.done(getReferenceType());
} }
setExpectAsKeyword(old_expect_AS_kwd); setExpectAsKeyword(old_expect_AS_kwd);
@@ -710,7 +707,7 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
final SyntaxTreeBuilder.Marker whilePart = myBuilder.mark(); final SyntaxTreeBuilder.Marker whilePart = myBuilder.mark();
myBuilder.advanceLexer(); myBuilder.advanceLexer();
if (!getExpressionParser().parseSingleExpression(false)) { if (!getExpressionParser().parseSingleExpression(false)) {
myBuilder.error(EXPRESSION_EXPECTED); myBuilder.error(PyPsiBundle.message("PARSE.expected.expression"));
} }
parseColonAndSuite(); parseColonAndSuite();
whilePart.done(PyElementTypes.WHILE_PART); whilePart.done(PyElementTypes.WHILE_PART);
@@ -741,13 +738,13 @@ public class StatementParsing extends Parsing implements ITokenTypeRemapper {
myBuilder.advanceLexer(); myBuilder.advanceLexer();
if (myBuilder.getTokenType() != PyTokenTypes.COLON) { if (myBuilder.getTokenType() != PyTokenTypes.COLON) {
if (!getExpressionParser().parseSingleExpression(false)) { if (!getExpressionParser().parseSingleExpression(false)) {
myBuilder.error(EXPRESSION_EXPECTED); myBuilder.error(PyPsiBundle.message("PARSE.expected.expression"));
} }
setExpectAsKeyword(true); setExpectAsKeyword(true);
if (myBuilder.getTokenType() == PyTokenTypes.COMMA || myBuilder.getTokenType() == PyTokenTypes.AS_KEYWORD) { if (myBuilder.getTokenType() == PyTokenTypes.COMMA || myBuilder.getTokenType() == PyTokenTypes.AS_KEYWORD) {
myBuilder.advanceLexer(); myBuilder.advanceLexer();
if (!getExpressionParser().parseSingleExpression(true)) { if (!getExpressionParser().parseSingleExpression(true)) {
myBuilder.error(EXPRESSION_EXPECTED); myBuilder.error(PyPsiBundle.message("PARSE.expected.expression"));
} }
} }
} }

View File

@@ -178,7 +178,7 @@ public class PyConsoleParsingContext extends ParsingContext {
else { else {
expr.drop(); expr.drop();
command.drop(); command.drop();
myBuilder.error(PyPsiBundle.message("PARSE.console.identifier.expected")); myBuilder.error(PyPsiBundle.message("PARSE.expected.identifier"));
return false; return false;
} }
while (myBuilder.getTokenType() != null) { while (myBuilder.getTokenType() != null) {

View File

@@ -5,7 +5,7 @@ PyFile:shellError.py
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected
<empty list> <empty list>
PsiElement(Py:PLING)('!') PsiElement(Py:PLING)('!')
PsiErrorElement:Identifier expected. PsiErrorElement:Identifier expected
<empty list> <empty list>
PsiErrorElement:Statement expected, found Py:PLING PsiErrorElement:Statement expected, found Py:PLING
<empty list> <empty list>

View File

@@ -5,7 +5,7 @@ FunctionTypeComment:a.functionTypeComment
PyReferenceExpression: int PyReferenceExpression: int
PsiElement(Py:IDENTIFIER)('int') PsiElement(Py:IDENTIFIER)('int')
PsiElement(Py:COMMA)(',') PsiElement(Py:COMMA)(',')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')

View File

@@ -4,7 +4,7 @@ FunctionTypeComment:a.functionTypeComment
PsiElement(Py:LPAR)('(') PsiElement(Py:LPAR)('(')
PsiErrorElement:')' expected PsiErrorElement:')' expected
<empty list> <empty list>
PsiErrorElement:unexpected tokens PsiErrorElement:Unexpected tokens
PsiElement(Py:DEF_KEYWORD)('def') PsiElement(Py:DEF_KEYWORD)('def')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:IDENTIFIER)('foo') PsiElement(Py:IDENTIFIER)('foo')

View File

@@ -7,6 +7,6 @@ FunctionTypeComment:a.functionTypeComment
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:RARROW)('->') PsiElement(Py:RARROW)('->')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')

View File

@@ -4,7 +4,7 @@ FunctionTypeComment:a.functionTypeComment
PsiElement(Py:LPAR)('(') PsiElement(Py:LPAR)('(')
PyStarExpression PyStarExpression
PsiElement(Py:MULT)('*') PsiElement(Py:MULT)('*')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')

View File

@@ -17,4 +17,4 @@ def <error descr="Identifier expected">await</error>():
pass pass
await<error descr="expression expected"> </error>= 10 await<error descr="Expression expected"> </error>= 10

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = {await<error descr="expression expected">:</error> 10 for await<error descr="expression expected"> </error>in []} # fail y = {await<error descr="Expression expected">:</error> 10 for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = {mapper(await<error descr="expression expected">)</error>: 10 for await<error descr="expression expected"> </error>in []} # fail y = {mapper(await<error descr="Expression expected">)</error>: 10 for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = {i: 10 for i in await<error descr="expression expected">}</error> # fail y = {i: 10 for i in await<error descr="Expression expected">}</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = {z: 10 for <error descr="can't assign to await expression">await z</error> in []} # fail y = {z: 10 for <error descr="Can't assign to await expression">await z</error> in []} # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {await<error descr="expression expected">:</error> 10} # fail return {await<error descr="Expression expected">:</error> 10} # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {"a": 10, await<error descr="expression expected">:</error> 10, "b": 10} # fail return {"a": 10, await<error descr="Expression expected">:</error> 10, "b": 10} # fail
def f62(): def f62():

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = {await<error descr="expression expected">:</error> 10 for await<error descr="expression expected"> </error>in []} # fail y = {await<error descr="Expression expected">:</error> 10 for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = {mapper(await<error descr="expression expected">)</error>: 10 for await<error descr="expression expected"> </error>in []} # fail y = {mapper(await<error descr="Expression expected">)</error>: 10 for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = {i: 10 for i in await<error descr="expression expected">}</error> # fail y = {i: 10 for i in await<error descr="Expression expected">}</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = {z: 10 for <error descr="can't assign to await expression">await z</error> in []} # fail y = {z: 10 for <error descr="Can't assign to await expression">await z</error> in []} # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {await<error descr="expression expected">:</error> 10} # fail return {await<error descr="Expression expected">:</error> 10} # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {"a": 10, await<error descr="expression expected">:</error> 10, "b": 10} # fail return {"a": 10, await<error descr="Expression expected">:</error> 10, "b": 10} # fail
def f62(): def f62():

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = (await<error descr="expression expected"> </error>for await<error descr="expression expected"> </error>in []) # fail y = (await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []) # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = (mapper(await<error descr="expression expected">)</error> for await<error descr="expression expected"> </error>in []) # fail y = (mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []) # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = (i for i in await<error descr="expression expected">)</error> # fail y = (i for i in await<error descr="Expression expected">)</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = (z for <error descr="can't assign to await expression">await z</error> in []) # fail y = (z for <error descr="Can't assign to await expression">await z</error> in []) # fail
await x await x

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = [await<error descr="expression expected"> </error>for await<error descr="expression expected"> </error>in []] # fail y = [await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []] # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = [mapper(await<error descr="expression expected">)</error> for await<error descr="expression expected"> </error>in []] # fail y = [mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []] # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = [i for i in await<error descr="expression expected">]</error> # fail y = [i for i in await<error descr="Expression expected">]</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = [z for <error descr="can't assign to await expression">await z</error> in []] # fail y = [z for <error descr="Can't assign to await expression">await z</error> in []] # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return [await<error descr="expression expected">]</error> # fail return [await<error descr="Expression expected">]</error> # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return ["a", await<error descr="expression expected">,</error> "b"] # fail return ["a", await<error descr="Expression expected">,</error> "b"] # fail
def f62(): def f62():

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = [await<error descr="expression expected"> </error>for await<error descr="expression expected"> </error>in []] # fail y = [await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []] # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = [mapper(await<error descr="expression expected">)</error> for await<error descr="expression expected"> </error>in []] # fail y = [mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []] # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = [i for i in await<error descr="expression expected">]</error> # fail y = [i for i in await<error descr="Expression expected">]</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = [z for <error descr="can't assign to await expression">await z</error> in []] # fail y = [z for <error descr="Can't assign to await expression">await z</error> in []] # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return [await<error descr="expression expected">]</error> # fail return [await<error descr="Expression expected">]</error> # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return ["a", await<error descr="expression expected">,</error> "b"] # fail return ["a", await<error descr="Expression expected">,</error> "b"] # fail
def f62(): def f62():

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = {await<error descr="expression expected"> </error>for await<error descr="expression expected"> </error>in []} # fail y = {await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = {mapper(await<error descr="expression expected">)</error> for await<error descr="expression expected"> </error>in []} # fail y = {mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = {i for i in await<error descr="expression expected">}</error> # fail y = {i for i in await<error descr="Expression expected">}</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = {z for <error descr="can't assign to await expression">await z</error> in []} # fail y = {z for <error descr="Can't assign to await expression">await z</error> in []} # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {await<error descr="expression expected">}</error> # fail return {await<error descr="Expression expected">}</error> # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {"a", await<error descr="expression expected">,</error> "b"} # fail return {"a", await<error descr="Expression expected">,</error> "b"} # fail
def f62(): def f62():

View File

@@ -1,5 +1,5 @@
async def f11(x): async def f11(x):
y = {await<error descr="expression expected"> </error>for await<error descr="expression expected"> </error>in []} # fail y = {await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -9,7 +9,7 @@ def f12(x):
async def f21(x): async def f21(x):
y = {mapper(await<error descr="expression expected">)</error> for await<error descr="expression expected"> </error>in []} # fail y = {mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []} # fail
await x await x
@@ -19,8 +19,8 @@ def f22(x):
async def f31(x): async def f31(x):
await<error descr="expression expected"> </error>= [] # fail await<error descr="Expression expected"> </error>= [] # fail
y = {i for i in await<error descr="expression expected">}</error> # fail y = {i for i in await<error descr="Expression expected">}</error> # fail
await x await x
@@ -41,7 +41,7 @@ async def f42(x):
async def f43(x): async def f43(x):
y = {z for <error descr="can't assign to await expression">await z</error> in []} # fail y = {z for <error descr="Can't assign to await expression">await z</error> in []} # fail
await x await x
@@ -51,8 +51,8 @@ async def f44(x):
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {await<error descr="expression expected">}</error> # fail return {await<error descr="Expression expected">}</error> # fail
def f52(): def f52():
@@ -61,8 +61,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return {"a", await<error descr="expression expected">,</error> "b"} # fail return {"a", await<error descr="Expression expected">,</error> "b"} # fail
def f62(): def f62():

View File

@@ -1,6 +1,6 @@
async def f51(): async def f51():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return (await<error descr="expression expected">)</error> # fail return (await<error descr="Expression expected">)</error> # fail
def f52(): def f52():
@@ -9,8 +9,8 @@ def f52():
async def f61(): async def f61():
await<error descr="expression expected"> </error>= 5 # fail await<error descr="Expression expected"> </error>= 5 # fail
return ("a", await<error descr="expression expected">,</error> "b") # fail return ("a", await<error descr="Expression expected">,</error> "b") # fail
def f62(): def f62():

View File

@@ -1,6 +1,6 @@
f'{<error descr="expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error>}' f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error>}'
f'{<error descr="expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error><error descr="} expected">'</error> f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error><error descr="'}' expected">'</error>
f'{<error descr="expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>N{GREEK SMALL LETTER ALPHA}</error>}' f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>N{GREEK SMALL LETTER ALPHA}</error>}'
f'{Formatable():\n\t}' f'{Formatable():\n\t}'
f'{42:{<error descr="expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error>}}' f'{42:{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include backslashes">\</error>t</error>}}'
f'{f"""{"<error descr="Expression fragments inside f-strings cannot include backslashes">\</error>n"}"""}' f'{f"""{"<error descr="Expression fragments inside f-strings cannot include backslashes">\</error>n"}"""}'

View File

@@ -1,10 +1,10 @@
f'{<error descr="expression expected">}</error>' f'{<error descr="Expression expected">}</error>'
f'{<error descr="expression expected"><error descr="} expected">'</error></error> f'{<error descr="'}' expected"><error descr="Expression expected">'</error></error>
f'{<EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="expression expected"></EOLError><EOLError descr="' expected"></EOLError> f'{<EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="Expression expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{<error descr="expression expected">!</error>r}' f'{<error descr="Expression expected">!</error>r}'
f'{<error descr="expression expected">:</error>2.3}' f'{<error descr="Expression expected">:</error>2.3}'
f'{42:2.{<error descr="expression expected">}</error>}' f'{42:2.{<error descr="Expression expected">}</error>}'
f'{<error descr="expression expected"> </error>}' f'{<error descr="Expression expected"> </error>}'
f'{42:{<error descr="expression expected"> </error>}}' f'{42:{<error descr="Expression expected"> </error>}}'
f'{<error descr="expression expected"> </error>:{<error descr="expression expected"> </error><error descr="} expected">'</error> f'{<error descr="Expression expected"> </error>:{<error descr="Expression expected"> </error><error descr="'}' expected">'</error>
f'{<error descr="expression expected"> </error>!r:{<error descr="expression expected"> </error>:42}}' f'{<error descr="Expression expected"> </error>!r:{<error descr="Expression expected"> </error>:42}}'

View File

@@ -1,9 +1,9 @@
f'{<error descr="Expression fragments inside f-strings cannot include line comments"><error descr="expression expected">#'</error></error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include line comments">#'</error></error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{<error descr="Expression fragments inside f-strings cannot include line comments"><error descr="expression expected">#</error></error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include line comments">#</error></error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{<error descr="Expression fragments inside f-strings cannot include line comments"><error descr="expression expected">#foo#}'</error></error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include line comments">#foo#}'</error></error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{42:#}' f'{42:#}'
f'{42:{<error descr="Expression fragments inside f-strings cannot include line comments"><error descr="expression expected">#}}'</error></error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{42:{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include line comments">#}}'</error></error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{x<error descr="type conversion, : or } expected"> </error><error descr="Expression fragments inside f-strings cannot include line comments">### foo}'</error><EOLError descr="' expected"></EOLError> f'{x<error descr="Type conversion, ':' or '}' expected"> </error><error descr="Expression fragments inside f-strings cannot include line comments">### foo}'</error><EOLError descr="' expected"></EOLError>
f'{"###"}' f'{"###"}'
f'''{[ f'''{[
42 <error descr="Expression fragments inside f-strings cannot include line comments"># foo</error> 42 <error descr="Expression fragments inside f-strings cannot include line comments"># foo</error>

View File

@@ -5,5 +5,5 @@ f'{42<error descr="Illegal conversion character 'z': should be one of 's', 'r',
f'{42<error descr="Illegal conversion character 'foo': should be one of 's', 'r', 'a'">!foo</error>}' f'{42<error descr="Illegal conversion character 'foo': should be one of 's', 'r', 'a'">!foo</error>}'
f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error>}' f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error>}'
f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error>:2}' f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error>:2}'
f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error><error descr="} expected">'</error> f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error><error descr="'}' expected">'</error>
f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error><EOLError descr=": or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{42<error descr="Conversion character is expected: should be one of 's', 'r', 'a'">!</error><EOLError descr=": or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>

View File

@@ -3,8 +3,8 @@ f'{42!r}'
f'{42!r:03}' f'{42!r:03}'
f'{42:03}' f'{42:03}'
f'{42!r:{y}.{z}}' f'{42!r:{y}.{z}}'
f'{<error descr="expression expected"><error descr="} expected">'</error></error> f'{<error descr="'}' expected"><error descr="Expression expected">'</error></error>
f'{42:{<error descr="expression expected"><error descr="} expected">'</error></error> f'{42:{<error descr="'}' expected"><error descr="Expression expected">'</error></error>
f'{42!r:{<error descr="expression expected"><error descr="} expected">'</error></error> f'{42!r:{<error descr="'}' expected"><error descr="Expression expected">'</error></error>
f'{{' f'{{'
f'{{{<error descr="expression expected"><error descr="} expected">'</error></error> f'{{{<error descr="'}' expected"><error descr="Expression expected">'</error></error>

View File

@@ -1,7 +1,7 @@
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{<error descr="expression expected">}</error></error>}}' f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{<error descr="Expression expected">}</error></error>}}'
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{<error descr="Expression fragments inside f-strings cannot include line comments"><error descr="expression expected"># foo}}}'</error></error></error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{<error descr="Expression expected"><error descr="Expression fragments inside f-strings cannot include line comments"># foo}}}'</error></error></error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z<error descr="Illegal conversion character 'z': should be one of 's', 'r', 'a'">!z</error>}</error>}}' f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z<error descr="Illegal conversion character 'z': should be one of 's', 'r', 'a'">!z</error>}</error>}}'
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z:<error descr="Expression fragment inside f-string is nested too deeply">{42}</error>}</error>}}' f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z:<error descr="Expression fragment inside f-string is nested too deeply">{42}</error>}</error>}}'
f'{<error descr="expression expected">:</error>{<error descr="expression expected">:</error><error descr="Expression fragment inside f-string is nested too deeply">{<error descr="expression expected">:</error><error descr="Expression fragment inside f-string is nested too deeply">{<error descr="expression expected">}</error></error>}</error>}}' f'{<error descr="Expression expected">:</error>{<error descr="Expression expected">:</error><error descr="Expression fragment inside f-string is nested too deeply">{<error descr="Expression expected">:</error><error descr="Expression fragment inside f-string is nested too deeply">{<error descr="Expression expected">}</error></error>}</error>}}'
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z</error><error descr="} expected">'</error> f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z</error><error descr="'}' expected">'</error>
f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z</error><EOLError descr="type conversion, : or } expected"></EOLError><EOLError descr="' expected"></EOLError> f'{x:{y:<error descr="Expression fragment inside f-string is nested too deeply">{z</error><EOLError descr="Type conversion, ':' or '}' expected"></EOLError><EOLError descr="' expected"></EOLError>

View File

@@ -4,5 +4,5 @@
def <weak_warning descr="Missing docstring">g</weak_warning>(): def <weak_warning descr="Missing docstring">g</weak_warning>():
# type: <error descr="unexpected tokens">"foo"</error> # type: <error descr="Unexpected tokens">"foo"</error>
pass pass

View File

@@ -1,4 +1,4 @@
def test(): def test():
x = r"""\x"" x = r"""\x""
r"""[<error descr="expression expected">\</error><error descr="Statement expected, found Py:BACKSLASH">t</error><error descr="End of statement expected">\</error><error descr="Statement expected, found Py:BACKSLASH">r</error><error descr="End of statement expected">\</error><error descr="Statement expected, found Py:BACKSLASH">v</error><error descr="End of statement expected">]</error><error descr="Statement expected, found Py:RBRACKET">"</error>"" r"""[<error descr="Expression expected">\</error><error descr="Statement expected, found Py:BACKSLASH">t</error><error descr="End of statement expected">\</error><error descr="Statement expected, found Py:BACKSLASH">r</error><error descr="End of statement expected">\</error><error descr="Statement expected, found Py:BACKSLASH">v</error><error descr="End of statement expected">]</error><error descr="Statement expected, found Py:RBRACKET">"</error>""
""" """

View File

@@ -3,4 +3,4 @@ class Kvas:
pass pass
Kvas()[<error descr="expression expected">]</error> Kvas()[<error descr="Expression expected">]</error>

View File

@@ -40,6 +40,6 @@ def unused_inner_function_with_unknown_decorator():
pass pass
def unused_inner_function_with_incomplete_decorator(): def unused_inner_function_with_incomplete_decorator():
@<EOLError descr="expression expected"></EOLError> @<EOLError descr="Expression expected"></EOLError>
def func(): # pass def func(): # pass
pass pass

View File

@@ -35,7 +35,7 @@ PyFile:Await.py
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PyStatementList PyStatementList
PyAssignmentStatement PyAssignmentStatement
PsiErrorElement:can't assign to await expression PsiErrorElement:Can't assign to await expression
PsiElement(Py:AWAIT_KEYWORD)('await') PsiElement(Py:AWAIT_KEYWORD)('await')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PyTargetExpression: x PyTargetExpression: x

View File

@@ -9,7 +9,7 @@ PyFile:CommaAfterStarArg.py
PsiElement(Py:MULT)('*') PsiElement(Py:MULT)('*')
PsiElement(Py:IDENTIFIER)('args') PsiElement(Py:IDENTIFIER)('args')
PsiElement(Py:COMMA)(',') PsiElement(Py:COMMA)(',')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')
@@ -30,7 +30,7 @@ PyFile:CommaAfterStarArg.py
PsiElement(Py:EXP)('**') PsiElement(Py:EXP)('**')
PsiElement(Py:IDENTIFIER)('kwargs') PsiElement(Py:IDENTIFIER)('kwargs')
PsiElement(Py:COMMA)(',') PsiElement(Py:COMMA)(',')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')

View File

@@ -2,17 +2,17 @@ PyFile:ComprehensionErrors.py
PyExpressionStatement PyExpressionStatement
PyListCompExpression PyListCompExpression
PsiElement(Py:LBRACKET)('[') PsiElement(Py:LBRACKET)('[')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:FOR_KEYWORD)('for') PsiElement(Py:FOR_KEYWORD)('for')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:IN_KEYWORD)('in') PsiElement(Py:IN_KEYWORD)('in')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:IF_KEYWORD)('if') PsiElement(Py:IF_KEYWORD)('if')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RBRACKET)(']') PsiElement(Py:RBRACKET)(']')

View File

@@ -19,6 +19,6 @@ PyFile:DictMissingValue.py
PyReferenceExpression: key2 PyReferenceExpression: key2
PsiElement(Py:IDENTIFIER)('key2') PsiElement(Py:IDENTIFIER)('key2')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')
PsiErrorElement:value expression expected PsiErrorElement:Value expression expected
<empty list> <empty list>
PsiElement(Py:RBRACE)('}') PsiElement(Py:RBRACE)('}')

View File

@@ -9,6 +9,6 @@ PyFile:EmptySubscription.py
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:SINGLE_QUOTED_STRING)('''') PsiElement(Py:SINGLE_QUOTED_STRING)('''')
PsiElement(Py:LBRACKET)('[') PsiElement(Py:LBRACKET)('[')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RBRACKET)(']') PsiElement(Py:RBRACKET)(']')

View File

@@ -16,7 +16,7 @@ PyFile:ErrorInParameterList.py
PsiElement(Py:IDENTIFIER)('None') PsiElement(Py:IDENTIFIER)('None')
PsiElement(Py:COMMA)(',') PsiElement(Py:COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:formal parameter name expected PsiErrorElement:Formal parameter name expected
PsiElement(Py:FROM_KEYWORD)('from') PsiElement(Py:FROM_KEYWORD)('from')
PsiElement(Py:EQ)('=') PsiElement(Py:EQ)('=')
PsiElement(Py:SINGLE_QUOTED_STRING)('''') PsiElement(Py:SINGLE_QUOTED_STRING)('''')

View File

@@ -13,7 +13,7 @@ PyFile:FStringBackslashAfterExpression.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyNumericLiteralExpression PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PsiErrorElement:unexpected expression part PsiErrorElement:Unexpected expression part
PsiElement(Py:BACKSLASH)(' \') PsiElement(Py:BACKSLASH)(' \')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')

View File

@@ -11,7 +11,7 @@ PyFile:FStringBackslashBeforeExpression.py
PsiElement(Py:FSTRING_TEXT)('foo') PsiElement(Py:FSTRING_TEXT)('foo')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiElement(Py:BACKSLASH)('\') PsiElement(Py:BACKSLASH)('\')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')

View File

@@ -11,7 +11,7 @@ PyFile:FStringBackslashInsteadOfExpression.py
PsiElement(Py:FSTRING_TEXT)('foo') PsiElement(Py:FSTRING_TEXT)('foo')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiElement(Py:BACKSLASH)('\') PsiElement(Py:BACKSLASH)('\')
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')
PsiElement(Py:FSTRING_TEXT)('bar') PsiElement(Py:FSTRING_TEXT)('bar')

View File

@@ -10,25 +10,25 @@ PyFile:FStringDeeplyNestedEmptyFragments.py
PsiElement(Py:FSTRING_START)('f'') PsiElement(Py:FSTRING_START)('f'')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')

View File

@@ -15,6 +15,6 @@ PyFile:FStringEscapedSlashBeforeClosingQuoteInFormatPart.py
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiElement(Py:FSTRING_TEXT)('\\') PsiElement(Py:FSTRING_TEXT)('\\')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -13,6 +13,6 @@ PyFile:FStringFragmentIncompleteTypeConversionBeforeClosingQuote.py
PyNumericLiteralExpression PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PsiElement(Py:FSTRING_FRAGMENT_TYPE_CONVERSION)('!') PsiElement(Py:FSTRING_FRAGMENT_TYPE_CONVERSION)('!')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -12,6 +12,6 @@ PyFile:FStringIncompleteFragment.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyNumericLiteralExpression PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -19,6 +19,6 @@ PyFile:FStringIncompleteFragmentWithFormatPart.py
PyReferenceExpression: width PyReferenceExpression: width
PsiElement(Py:IDENTIFIER)('width') PsiElement(Py:IDENTIFIER)('width')
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)('"') PsiElement(Py:FSTRING_END)('"')

View File

@@ -13,6 +13,6 @@ PyFile:FStringIncompleteFragmentWithTypeConversion.py
PyNumericLiteralExpression PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PsiElement(Py:FSTRING_FRAGMENT_TYPE_CONVERSION)('!r') PsiElement(Py:FSTRING_FRAGMENT_TYPE_CONVERSION)('!r')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -20,6 +20,6 @@ PyFile:FStringIncompleteFragmentWithTypeConversionAndFormatPart.py
PyReferenceExpression: width PyReferenceExpression: width
PsiElement(Py:IDENTIFIER)('width') PsiElement(Py:IDENTIFIER)('width')
PsiElement(Py:FSTRING_FRAGMENT_END)('}') PsiElement(Py:FSTRING_FRAGMENT_END)('}')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -15,7 +15,7 @@ PyFile:FStringTerminatedByLineBreakInExpression.py
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -21,7 +21,7 @@ PyFile:FStringTerminatedByLineBreakInExpressionInFormatPart.py
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -16,7 +16,7 @@ PyFile:FStringTerminatedByLineBreakInFormatPart.py
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiElement(Py:FSTRING_TEXT)('bar') PsiElement(Py:FSTRING_TEXT)('bar')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -20,7 +20,7 @@ PyFile:FStringTerminatedByLineBreakInNestedExpression.py
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -26,7 +26,7 @@ PyFile:FStringTerminatedByLineBreakInNestedExpressionInFormatPart.py
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -21,7 +21,7 @@ PyFile:FStringTerminatedByLineBreakInNestedFormatPart.py
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiElement(Py:FSTRING_TEXT)('bar') PsiElement(Py:FSTRING_TEXT)('bar')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -16,7 +16,7 @@ PyFile:FStringTerminatedByLineBreakInNestedLiteralPart.py
PsiElement(Py:FSTRING_TEXT)('foo') PsiElement(Py:FSTRING_TEXT)('foo')
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -12,7 +12,7 @@ PyFile:FStringTerminatedByLineBreakInStringLiteral.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:TRIPLE_QUOTED_STRING)('"""') PsiElement(Py:TRIPLE_QUOTED_STRING)('"""')
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -18,7 +18,7 @@ PyFile:FStringTerminatedByLineBreakInStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:TRIPLE_QUOTED_STRING)('"""') PsiElement(Py:TRIPLE_QUOTED_STRING)('"""')
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -14,7 +14,7 @@ PyFile:FStringTerminatedByQuoteInFormatPart.py
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -19,7 +19,7 @@ PyFile:FStringTerminatedByQuoteInNestedFormatPart.py
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -17,7 +17,7 @@ PyFile:FStringTerminatedByQuoteInNestedLiteralPart.py
PsiElement(Py:FSTRING_TEXT)('baz') PsiElement(Py:FSTRING_TEXT)('baz')
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -16,7 +16,7 @@ PyFile:FStringTerminatedByQuoteInsideFStringLiteral.py
PsiElement(Py:FSTRING_START)('f"') PsiElement(Py:FSTRING_START)('f"')
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiElement(Py:SINGLE_QUOTED_STRING)('"}baz'') PsiElement(Py:SINGLE_QUOTED_STRING)('"}baz'')

View File

@@ -21,7 +21,7 @@ PyFile:FStringTerminatedByQuoteInsideFStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_START)('f"') PsiElement(Py:FSTRING_START)('f"')
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiElement(Py:SINGLE_QUOTED_STRING)('"}}'') PsiElement(Py:SINGLE_QUOTED_STRING)('"}}'')

View File

@@ -20,7 +20,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedFStringLiteral.py
PsiElement(Py:FSTRING_START)('f"') PsiElement(Py:FSTRING_START)('f"')
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:""" expected PsiErrorElement:""" expected
<empty list> <empty list>

View File

@@ -26,7 +26,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedFStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_START)('f"') PsiElement(Py:FSTRING_START)('f"')
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:""" expected PsiErrorElement:""" expected
<empty list> <empty list>

View File

@@ -17,7 +17,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedStringLiteral.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:SINGLE_QUOTED_STRING)('"') PsiElement(Py:SINGLE_QUOTED_STRING)('"')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:""" expected PsiErrorElement:""" expected
<empty list> <empty list>

View File

@@ -23,7 +23,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:SINGLE_QUOTED_STRING)('"') PsiElement(Py:SINGLE_QUOTED_STRING)('"')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:""" expected PsiErrorElement:""" expected
<empty list> <empty list>

View File

@@ -13,7 +13,7 @@ PyFile:FStringTerminatedByQuoteInsideStringLiteral.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:SINGLE_QUOTED_STRING)('"') PsiElement(Py:SINGLE_QUOTED_STRING)('"')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiElement(Py:SINGLE_QUOTED_STRING)('"}baz'') PsiElement(Py:SINGLE_QUOTED_STRING)('"}baz'')

View File

@@ -18,7 +18,7 @@ PyFile:FStringTerminatedByQuoteInsideStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyStringLiteralExpression: PyStringLiteralExpression:
PsiElement(Py:SINGLE_QUOTED_STRING)('"') PsiElement(Py:SINGLE_QUOTED_STRING)('"')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiElement(Py:SINGLE_QUOTED_STRING)('"}}'') PsiElement(Py:SINGLE_QUOTED_STRING)('"}}'')

View File

@@ -13,7 +13,7 @@ PyFile:FStringTerminatedByQuoteOfFStringLiteral.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyReferenceExpression: f PyReferenceExpression: f
PsiElement(Py:IDENTIFIER)('f') PsiElement(Py:IDENTIFIER)('f')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -18,7 +18,7 @@ PyFile:FStringTerminatedByQuoteOfFStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyReferenceExpression: f PyReferenceExpression: f
PsiElement(Py:IDENTIFIER)('f') PsiElement(Py:IDENTIFIER)('f')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -17,7 +17,7 @@ PyFile:FStringTerminatedByQuoteOfNestedFStringLiteral.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyReferenceExpression: f PyReferenceExpression: f
PsiElement(Py:IDENTIFIER)('f') PsiElement(Py:IDENTIFIER)('f')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -23,7 +23,7 @@ PyFile:FStringTerminatedByQuoteOfNestedFStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyReferenceExpression: f PyReferenceExpression: f
PsiElement(Py:IDENTIFIER)('f') PsiElement(Py:IDENTIFIER)('f')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -15,9 +15,9 @@ PyFile:FStringTerminatedByQuoteOfNestedStringLiteral.py
PsiElement(Py:FSTRING_START)('f"') PsiElement(Py:FSTRING_START)('f"')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -21,9 +21,9 @@ PyFile:FStringTerminatedByQuoteOfNestedStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:" expected PsiErrorElement:" expected
<empty list> <empty list>

View File

@@ -11,9 +11,9 @@ PyFile:FStringTerminatedByQuoteOfStringLiteral.py
PsiElement(Py:FSTRING_TEXT)('foo') PsiElement(Py:FSTRING_TEXT)('foo')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -16,9 +16,9 @@ PyFile:FStringTerminatedByQuoteOfStringLiteralInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')
PsiErrorElement:End of statement expected PsiErrorElement:End of statement expected

View File

@@ -16,8 +16,8 @@ PyFile:FStringTrailingWhitespaceInIncompleteFragmentInFormatPart.py
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -12,7 +12,7 @@ PyFile:IncompleteDict.py
PyStringLiteralExpression: key PyStringLiteralExpression: key
PsiElement(Py:SINGLE_QUOTED_STRING)(''key'') PsiElement(Py:SINGLE_QUOTED_STRING)(''key'')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:RBRACE)('}') PsiElement(Py:RBRACE)('}')

View File

@@ -95,7 +95,7 @@ PyFile:InvalidAssignmentExpressions.py
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PyPrefixExpression PyPrefixExpression
PsiElement(Py:MINUS)('-') PsiElement(Py:MINUS)('-')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -107,7 +107,7 @@ PyFile:InvalidAssignmentExpressions.py
PsiElement(Py:IDENTIFIER)('x') PsiElement(Py:IDENTIFIER)('x')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:COLONEQ)(':=') PsiElement(Py:COLONEQ)(':=')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')

View File

@@ -12,7 +12,7 @@ PyFile:KeywordAsDefaultParameterValue.py
PyNamedParameter('fields') PyNamedParameter('fields')
PsiElement(Py:IDENTIFIER)('fields') PsiElement(Py:IDENTIFIER)('fields')
PsiElement(Py:EQ)('=') PsiElement(Py:EQ)('=')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiElement(Py:FROM_KEYWORD)('from') PsiElement(Py:FROM_KEYWORD)('from')
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')

View File

@@ -5,7 +5,7 @@ PyFile:KeywordAsNamedParameter.py
PsiElement(Py:IDENTIFIER)('f') PsiElement(Py:IDENTIFIER)('f')
PyParameterList PyParameterList
PsiElement(Py:LPAR)('(') PsiElement(Py:LPAR)('(')
PsiErrorElement:formal parameter name expected PsiErrorElement:Formal parameter name expected
PsiElement(Py:FROM_KEYWORD)('from') PsiElement(Py:FROM_KEYWORD)('from')
PsiElement(Py:EQ)('=') PsiElement(Py:EQ)('=')
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')

View File

@@ -8,6 +8,6 @@ PyFile:LoneStar.py
PyParenthesizedExpression PyParenthesizedExpression
PsiElement(Py:LPAR)('(') PsiElement(Py:LPAR)('(')
PsiElement(Py:MULT)('*') PsiElement(Py:MULT)('*')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')

View File

@@ -8,7 +8,7 @@ PyFile:MissingDefaultValue.py
PyNamedParameter('a') PyNamedParameter('a')
PsiElement(Py:IDENTIFIER)('a') PsiElement(Py:IDENTIFIER)('a')
PsiElement(Py:EQ)('=') PsiElement(Py:EQ)('=')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiElement(Py:RPAR)(')') PsiElement(Py:RPAR)(')')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')

View File

@@ -24,7 +24,7 @@ PyFile:MissingParenInCall.py
PsiElement(Py:DOT)('.') PsiElement(Py:DOT)('.')
PsiElement(Py:IDENTIFIER)('instance') PsiElement(Py:IDENTIFIER)('instance')
PsiElement(Py:COMMA)(',') PsiElement(Py:COMMA)(',')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PyStatementList PyStatementList

View File

@@ -12,7 +12,7 @@ PyFile:MultilineFStringContainsCommentInsteadOfExpression.py
PsiElement(Py:FSTRING_START)('f'''') PsiElement(Py:FSTRING_START)('f'''')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiComment(Py:END_OF_LINE_COMMENT)('# comment') PsiComment(Py:END_OF_LINE_COMMENT)('# comment')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')

View File

@@ -20,7 +20,7 @@ PyFile:MultilineFStringTerminatedByQuotesInsideParenthesizedExpression.py
PyNamedParameter('x') PyNamedParameter('x')
PsiElement(Py:IDENTIFIER)('x') PsiElement(Py:IDENTIFIER)('x')
PsiElement(Py:COLON)(':') PsiElement(Py:COLON)(':')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:FSTRING_END)(''') PsiElement(Py:FSTRING_END)(''')

View File

@@ -12,9 +12,9 @@ PyFile:MultilineFStringTerminatedByQuotesOfStringLiteral.py
PsiElement(Py:FSTRING_START)('f'''') PsiElement(Py:FSTRING_START)('f'''')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiElement(Py:FSTRING_END)(''''') PsiElement(Py:FSTRING_END)(''''')
PsiElement(Py:TRIPLE_QUOTED_STRING)(''''\n}'''') PsiElement(Py:TRIPLE_QUOTED_STRING)(''''\n}'''')

View File

@@ -16,5 +16,5 @@ PyFile:RaiseFromNoExpr.py
PsiElement(Py:IDENTIFIER)('AttributeError') PsiElement(Py:IDENTIFIER)('AttributeError')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:FROM_KEYWORD)('from') PsiElement(Py:FROM_KEYWORD)('from')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>

View File

@@ -12,7 +12,7 @@ PyFile:SingleLineFStringContainsCommentInsideExpression.py
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PyNumericLiteralExpression PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42') PsiElement(Py:INTEGER_LITERAL)('42')
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'') PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'')

View File

@@ -10,9 +10,9 @@ PyFile:SingleLineFStringContainsCommentInsteadOfExpression.py
PsiElement(Py:FSTRING_START)('f'') PsiElement(Py:FSTRING_START)('f'')
PyFStringFragment PyFStringFragment
PsiElement(Py:FSTRING_FRAGMENT_START)('{') PsiElement(Py:FSTRING_FRAGMENT_START)('{')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'') PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'')
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -20,7 +20,7 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInExpressio
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -22,7 +22,7 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInExpressio
PsiElement(Py:INTEGER_LITERAL)('1') PsiElement(Py:INTEGER_LITERAL)('1')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:PLUS)('+') PsiElement(Py:PLUS)('+')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -16,7 +16,7 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInText.py
PsiElement(Py:FSTRING_TEXT)('foo') PsiElement(Py:FSTRING_TEXT)('foo')
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>
PsiErrorElement:type conversion, : or } expected PsiErrorElement:Type conversion, ':' or '}' expected
<empty list> <empty list>
PsiErrorElement:""" expected PsiErrorElement:""" expected
<empty list> <empty list>

View File

@@ -15,7 +15,7 @@ PyFile:UnterminatedFStringWithTrailingBackslashInFormatPart.py
PyFStringFragmentFormatPart PyFStringFragmentFormatPart
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':') PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
PsiElement(Py:FSTRING_TEXT)('\') PsiElement(Py:FSTRING_TEXT)('\')
PsiErrorElement:} expected PsiErrorElement:'}' expected
<empty list> <empty list>
PsiErrorElement:' expected PsiErrorElement:' expected
<empty list> <empty list>

View File

@@ -14,5 +14,5 @@ PyFile:YieldFromNoExpr.py
PsiElement(Py:YIELD_KEYWORD)('yield') PsiElement(Py:YIELD_KEYWORD)('yield')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(Py:FROM_KEYWORD)('from') PsiElement(Py:FROM_KEYWORD)('from')
PsiErrorElement:expression expected PsiErrorElement:Expression expected
<empty list> <empty list>