@NotNull
  static HighlightInfo.Builder createIncompatibleTypeHighlightInfo(@NotNull PsiType lType,
                                                                   @Nullable PsiType rType,
                                                                   @NotNull TextRange textRange,
                                                                   int navigationShift,
                                                                   @NotNull String reason) {
    PsiType baseLType = PsiUtil.convertAnonymousToBaseType(lType);
    PsiType baseRType = rType == null ? null : PsiUtil.convertAnonymousToBaseType(rType);
    boolean leftAnonymous = PsiUtil.resolveClassInClassTypeOnly(lType) instanceof PsiAnonymousClass;
    String styledReason = reason.isEmpty() ? "" :
                          String.format("<table><tr><td style=''padding-top: 10px; padding-left: 4px;''>%s</td></tr></table>", reason);
    IncompatibleTypesTooltipComposer tooltipComposer = (lTypeString, lTypeArguments, rTypeString, rTypeArguments) -> 
      JavaErrorBundle.message("incompatible.types.html.tooltip",
                              lTypeString, lTypeArguments,
                              rTypeString, rTypeArguments,
                              styledReason, "#" + ColorUtil.toHex(UIUtil.getContextHelpForeground()));
    String toolTip = createIncompatibleTypesTooltip(leftAnonymous ? lType : baseLType, leftAnonymous ? rType : baseRType, tooltipComposer);

    String lTypeString = JavaHighlightUtil.formatType(leftAnonymous ? lType : baseLType);
    String rTypeString = JavaHighlightUtil.formatType(leftAnonymous ? rType : baseRType);
    String description = JavaErrorBundle.message("incompatible.types", lTypeString, rTypeString);
    return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR)
      .range(textRange)
      .description(description)
      .escapedToolTip(toolTip)
      .navigationShift(navigationShift);
  }
@NotNull
  static HighlightInfo.Builder createIncompatibleTypeHighlightInfo(@NotNull PsiType lType,
                                                                   @Nullable PsiType rType,
                                                                   @NotNull TextRange textRange,
                                                                   int navigationShift,
                                                                   @NotNull String reason)