@Override
  public @NotNull IntentionPreviewInfo generatePreview(@NotNull Project project, @NotNull ProblemDescriptor previewDescriptor) {
    //noinspection unchecked
    UExpression uExpression =
      (UExpression)UastContextKt.getUastParentOfTypes(previewDescriptor.getStartElement(), new Class[]{UExpression.class});

    if (uExpression == null) return IntentionPreviewInfo.EMPTY;
    List<PsiElement> toAnnotate = getElementsToMark(uExpression);
    if (toAnnotate == null) return IntentionPreviewInfo.EMPTY;
    PsiElement sourcePsi = uExpression.getSourcePsi();
    if (sourcePsi == null) return IntentionPreviewInfo.EMPTY;
    PsiFile file = sourcePsi.getContainingFile();
    String message = JvmAnalysisBundle.message("jvm.inspections.source.unsafe.to.sink.flow.preview");
    if (ContainerUtil.exists(toAnnotate, e -> fileToAnnotate(e) != file)) {
      return new IntentionPreviewInfo.Html(message);
    }
    ArrayList<PsiElement> ignoredElements = new ArrayList<>();
    annotateInCode(project, toAnnotate, myTaintValueFactory, true, ignoredElements);
    if (ignoredElements.isEmpty()) {
      return IntentionPreviewInfo.DIFF;
    }
    return new IntentionPreviewInfo.Html(message);
  }
@Override
  public @NotNull IntentionPreviewInfo generatePreview(@NotNull Project project, @NotNull ProblemDescriptor previewDescriptor)