@Nullable
  public static String getSourceName(Location location, @NotNull Function<? super Throwable, String> defaultNameProvider) {
    try {
      return location.sourceName();
    }
    catch (InternalError | AbsentInformationException | IllegalArgumentException e) {
      return defaultNameProvider.apply(e);
    }
  }
@Nullable
  public static String getSourceName(Location location, @NotNull Function<? super Throwable, String> defaultNameProvider)