@Override
  public void visitPyStringLiteralExpression(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;
      }
    }
  }
@Override
  public void visitPyStringLiteralExpression(final @NotNull PyStringLiteralExpression node)