PY-20776 Warn expression parts that contain only whitespaces

This commit is contained in:
Mikhail Golubev
2016-09-22 15:12:56 +03:00
parent 6ea142ef97
commit 7196817a77
2 changed files with 5 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ package com.jetbrains.python.validation;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.util.TextRange;
import com.intellij.util.text.CharArrayUtil;
import com.jetbrains.python.codeInsight.fstrings.FStringParser;
import com.jetbrains.python.codeInsight.fstrings.FStringParser.FragmentOffsets;
import com.jetbrains.python.psi.PyStringLiteralExpression;
@@ -42,7 +43,7 @@ public class FStringsAnnotator extends PyAnnotator {
boolean hasUnclosedBrace = false;
for (FragmentOffsets fragment : fragments) {
final int fragContentEnd = fragment.getContentEndOffset();
if (fragment.getLeftBraceOffset() + 1 >= fragContentEnd) {
if (CharArrayUtil.isEmptyOrSpaces(nodeText, fragment.getLeftBraceOffset() + 1, fragment.getContentEndOffset())) {
report(fragment.getContentRange().shiftRight(nodeOffset), "Empty expressions are not allowed inside f-strings");
}
if (fragment.getRightBraceOffset() == -1) {

View File

@@ -4,3 +4,5 @@ f'{<error descr="Empty expressions are not allowed inside f-strings"></error><er
f'{<error descr="Empty expressions are not allowed inside f-strings"></error>!r}'
f'{<error descr="Empty expressions are not allowed inside f-strings"></error>:2.3}'
f'{42:2.{<error descr="Empty expressions are not allowed inside f-strings"></error>}}'
f'{<error descr="Empty expressions are not allowed inside f-strings"> </error>}'
f'{42:{<error descr="Empty expressions are not allowed inside f-strings"> </error>}}'