private static <T> void reportFailure(@Nullable T existing,
                                        @Nullable T fresh,
                                        @NotNull Class<?> providerClass,
                                        @Nullable Computable<? extends T> recomputeValue, String msg) {
    boolean shouldReport = (ApplicationManager.getApplication().isUnitTestMode()
                           || ourReportedValueClasses.add(providerClass))
                           &&  !("true".equals(System.getProperty("idea.disable.idempotence.checker", "false")));
    if (shouldReport) {
      if (recomputeValue != null) {
        msg += recomputeWithLogging(existing, fresh, recomputeValue);
      }
      LOG.error(PluginException.createByClass(msg, null, providerClass));
    }
  }
private static <T> void reportFailure(@Nullable T existing,
                                        @Nullable T fresh,
                                        @NotNull Class<?> providerClass,
                                        @Nullable Computable<? extends T> recomputeValue, String msg)