@Override
    public void visitLiteralExpression(@NotNull PsiLiteralExpression expression) {
      super.visitLiteralExpression(expression);
      final PsiType type = expression.getType();
      if (type == null) {
        return;
      }
      HighlightInfo.Builder parsingError =
        HighlightUtil.checkLiteralExpressionParsingError(expression, PsiUtil.getLanguageLevel(expression), null, null);
      if (parsingError != null) {
        return;
      }
      InjectedLanguageManager manager = InjectedLanguageManager.getInstance(getCurrentFile().getProject());
      if (type.equalsToText(CommonClassNames.JAVA_LANG_STRING)) {
        final String text = manager.getUnescapedText(expression);
        if (expression.isTextBlock()) {
          int end = text.length() - 3;
          int start = findUnnecessaryTextBlockEscapes(text, 4, end);
          while (start >= 0) {
            registerErrorAtOffset(expression, start, 2, text, text.substring(start, start + 2));
            start = findUnnecessaryTextBlockEscapes(text, start + 2, end);
          }
        }
        else {
          int start = findUnnecessaryStringEscapes(text, 1);
          while (start >= 0) {
            registerErrorAtOffset(expression, start, 2, text, text.substring(start, start + 2));
            start = findUnnecessaryStringEscapes(text, start + 2);
          }
        }
      }
      else if (reportChars && PsiTypes.charType().equals(type)) {
        final String text = manager.getUnescapedText(expression);
        if ("'\\\"'".equals(text)) {
          registerErrorAtOffset(expression, 1, 2, text, text.substring(1, 3));
        }
      }
    }
@Override
    public void visitLiteralExpression(@NotNull PsiLiteralExpression expression)