@NotNull
    private static DefaultValue merge(@NotNull DefaultValue self, @NotNull DefaultValue other) {
      if (self.unableToHasDefaultValue) return self;
      if (other.unableToHasDefaultValue) return other;

      if (self.defaultValue == null) return self;
      if (other.defaultValue == null) return other;

      if (Objects.equals(self.defaultValue, other.defaultValue)) return self;

      return new DefaultValue(true, null);
    }
@NotNull
    private static DefaultValue merge(@NotNull DefaultValue self, @NotNull DefaultValue other)