void (final @NotNull PyStringLiteralExpression node) { final List<ASTNode> stringNodes = node.getStringNodes(); for (ASTNode stringNode : stringNodes) { // TODO Migrate to newer PyStringElement API if (stringNode.getElementType() == PyElementTypes.FSTRING_NODE) { continue; } final String nodeText = PyPsiUtils.getElementTextWithoutHostEscaping(stringNode.getPsi()); final int index = PyStringLiteralUtil.getPrefixLength(nodeText); final String unprefixed = nodeText.substring(index); final boolean foundError; if (StringUtil.startsWith(unprefixed, TRIPLE_QUOTES)) { foundError = checkTripleQuotedString(stringNode, unprefixed, TRIPLE_QUOTES); } else if (StringUtil.startsWith(unprefixed, TRIPLE_APOS)) { foundError = checkTripleQuotedString(stringNode, unprefixed, TRIPLE_APOS); } else { foundError = checkQuotedString(stringNode, unprefixed); } if (foundError) { break; } } }