Module ErrorRenderingUtils.UserFriendlyNullable
"Effectively nullable values" from the user perspective. Depending on context, convention, and mode, Nullsafe treats such and such things as nullable or non-null. At some point this needs to be explain to the user.
type t
=
|
ExplainablyNullable of explainably_nullable_kind
Value that is nullable according to nullsafe semantics and conventions. It can be nullable because of an explicit annotation, models, default nullability conventions, etc.
|
UntrustedNonnull of untrusted_kind
Value is not nullable per se, but we still can not treat it as non-null in current mode. From the user perspective, it is a very different case: violations of this type need to be explained in a way so that it is clear why exactly can not nullsafe trust it in this context.
and explainably_nullable_kind
=
|
Nullable
|
Null
and untrusted_kind
=
|
ThirdPartyNonnull
|
UncheckedNonnull
|
LocallyCheckedNonnull
val from_nullability : Nullability.t -> t option