mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
PY-31442 Better reporting of mismatched/missing closing quotes
This commit is contained in:
@@ -137,12 +137,16 @@ public class ExpressionParsing extends Parsing {
|
||||
}
|
||||
// Can be the end of an enclosing f-string, so leave it in the stream
|
||||
else {
|
||||
builder.mark().error("Expected " + openingQuotes);
|
||||
builder.mark().error(openingQuotes + " expected");
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (atToken(PyTokenTypes.STATEMENT_BREAK)) {
|
||||
builder.mark().error(openingQuotes + " expected");
|
||||
break;
|
||||
}
|
||||
else {
|
||||
builder.mark().error("Unexpected f-string token");
|
||||
builder.error("unexpected f-string token");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ PyFile:FStringTerminatedByLineBreakInExpression.py
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -23,7 +23,7 @@ PyFile:FStringTerminatedByLineBreakInExpressionInFormatPart.py
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -18,7 +18,7 @@ PyFile:FStringTerminatedByLineBreakInFormatPart.py
|
||||
PsiElement(Py:FSTRING_TEXT)('bar')
|
||||
PsiErrorElement:} expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -9,7 +9,7 @@ PyFile:FStringTerminatedByLineBreakInLiteralPart.py
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f'')
|
||||
PsiElement(Py:FSTRING_TEXT)('foo')
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -22,9 +22,9 @@ PyFile:FStringTerminatedByLineBreakInNestedExpression.py
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -28,9 +28,9 @@ PyFile:FStringTerminatedByLineBreakInNestedExpressionInFormatPart.py
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -23,9 +23,9 @@ PyFile:FStringTerminatedByLineBreakInNestedFormatPart.py
|
||||
PsiElement(Py:FSTRING_TEXT)('bar')
|
||||
PsiErrorElement:} expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -14,11 +14,11 @@ PyFile:FStringTerminatedByLineBreakInNestedLiteralPart.py
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f'')
|
||||
PsiElement(Py:FSTRING_TEXT)('foo')
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -14,7 +14,7 @@ PyFile:FStringTerminatedByLineBreakInStringLiteral.py
|
||||
PsiElement(Py:TRIPLE_QUOTED_STRING)('"""')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -20,7 +20,7 @@ PyFile:FStringTerminatedByLineBreakInStringLiteralInFormatPart.py
|
||||
PsiElement(Py:TRIPLE_QUOTED_STRING)('"""')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -21,7 +21,7 @@ PyFile:FStringTerminatedByQuoteInNestedFormatPart.py
|
||||
PsiElement(Py:FSTRING_FRAGMENT_FORMAT_START)(':')
|
||||
PsiErrorElement:} expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiErrorElement:End of statement expected
|
||||
|
||||
@@ -15,7 +15,7 @@ PyFile:FStringTerminatedByQuoteInNestedLiteralPart.py
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f"')
|
||||
PsiElement(Py:FSTRING_TEXT)('baz')
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
|
||||
@@ -14,7 +14,7 @@ PyFile:FStringTerminatedByQuoteInsideFStringLiteral.py
|
||||
PyStringLiteralExpression:
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f"')
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
|
||||
@@ -19,7 +19,7 @@ PyFile:FStringTerminatedByQuoteInsideFStringLiteralInFormatPart.py
|
||||
PyStringLiteralExpression:
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f"')
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
|
||||
@@ -18,11 +18,11 @@ PyFile:FStringTerminatedByQuoteInsideNestedFStringLiteral.py
|
||||
PyStringLiteralExpression:
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f"')
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected """
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"}"')
|
||||
|
||||
@@ -24,11 +24,11 @@ PyFile:FStringTerminatedByQuoteInsideNestedFStringLiteralInFormatPart.py
|
||||
PyStringLiteralExpression:
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f"')
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected """
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"}}"')
|
||||
|
||||
@@ -19,7 +19,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedStringLiteral.py
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected """
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"}"')
|
||||
|
||||
@@ -25,7 +25,7 @@ PyFile:FStringTerminatedByQuoteInsideNestedStringLiteralInFormatPart.py
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected """
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiElement(Py:SINGLE_QUOTED_STRING)('"}}"')
|
||||
|
||||
@@ -19,7 +19,7 @@ PyFile:FStringTerminatedByQuoteOfNestedFStringLiteral.py
|
||||
PsiElement(Py:IDENTIFIER)('f')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiErrorElement:End of statement expected
|
||||
|
||||
@@ -25,7 +25,7 @@ PyFile:FStringTerminatedByQuoteOfNestedFStringLiteralInFormatPart.py
|
||||
PsiElement(Py:IDENTIFIER)('f')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiErrorElement:End of statement expected
|
||||
|
||||
@@ -19,7 +19,7 @@ PyFile:FStringTerminatedByQuoteOfNestedStringLiteral.py
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiErrorElement:End of statement expected
|
||||
|
||||
@@ -25,7 +25,7 @@ PyFile:FStringTerminatedByQuoteOfNestedStringLiteralInFormatPart.py
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Expected "
|
||||
PsiErrorElement:" expected
|
||||
<empty list>
|
||||
PsiElement(Py:FSTRING_END)(''')
|
||||
PsiErrorElement:End of statement expected
|
||||
|
||||
@@ -14,7 +14,7 @@ PyFile:SingleLineFStringContainsCommentInsideExpression.py
|
||||
PsiElement(Py:INTEGER_LITERAL)('42')
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'')
|
||||
@@ -14,6 +14,6 @@ PyFile:SingleLineFStringContainsCommentInsteadOfExpression.py
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiComment(Py:END_OF_LINE_COMMENT)('# comment}'')
|
||||
@@ -22,9 +22,9 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInExpressio
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace(' \n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -24,9 +24,9 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInExpressio
|
||||
PsiElement(Py:PLUS)('+')
|
||||
PsiErrorElement:expression expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace(' \n')
|
||||
PyExpressionStatement
|
||||
|
||||
@@ -14,11 +14,11 @@ PyFile:SingleQuotedFStringInsideMultilineFStringTerminatedByLineBreakInText.py
|
||||
PyFormattedStringNode
|
||||
PsiElement(Py:FSTRING_START)('f'')
|
||||
PsiElement(Py:FSTRING_TEXT)('foo')
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:' expected
|
||||
<empty list>
|
||||
PsiErrorElement:type conversion, : or } expected
|
||||
<empty list>
|
||||
PsiErrorElement:Unexpected f-string token
|
||||
PsiErrorElement:""" expected
|
||||
<empty list>
|
||||
PsiWhiteSpace('\n')
|
||||
PyExpressionStatement
|
||||
|
||||
Reference in New Issue
Block a user