<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Nullsafe__AnnotatedNullability (infer.Nullsafe__AnnotatedNullability)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.1"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../index.html">infer</a>» Nullsafe__AnnotatedNullability</nav><h1>Module <code>Nullsafe__AnnotatedNullability</code></h1></header><aside><p>Nullability of a type in Java program (e.g. in a function or field declaration). It might come from explicit annotations (or lack of annotation), or from other sources, including conventions about defaults, models, or the mode nullsafe runs in. NOTE: This is complementary to <spanclass="xref-unresolved"title="unresolved reference to "InferredNullability.t""><code>InferredNullability</code>.t</span>. <code>InferredNullability</code> contains info about _actual_ nullability (what did nullsafe infer according to its flow-sensitive rules.). In contrast, AnnotatedNullability represents _formal_ type as it appears in the program code. NOTE: Nullsafe disregards user-provided annotations for local types, so annotated nullability applies only for types declared at methods and field level.</p></aside><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code><code> = </code><tableclass="variant"><trid="type-t.Nullable"class="anchored"><tdclass="def constructor"><ahref="#type-t.Nullable"class="anchor"></a><code>| </code><code><spanclass="constructor">Nullable</span><spanclass="keyword">of</span><ahref="index.html#type-nullable_origin">nullable_origin</a></code></td></tr><trid="type-t.ThirdPartyNonnull"class="anchored"><tdclass="def constructor"><ahref="#type-t.ThirdPartyNonnull"class="anchor"></a><code>| </code><code><spanclass="constructor">ThirdPartyNonnull</span></code></td></tr><trid="type-t.UncheckedNonnull"class="anchored"><tdclass="def constructor"><ahref="#type-t.UncheckedNonnull"class="anchor"></a><code>| </code><code><spanclass="constructor">UncheckedNonnull</span><spanclass="keyword">of</span><ahref="index.html#type-unchecked_nonnull_origin">unchecked_nonnull_origin</a></code></td></tr><trid="type-t.LocallyTrustedNonnull"class="anchored"><tdclass="def constructor"><ahref="#type-t.LocallyTrustedNonnull"class="anchor"></a><code>| </code><code><spanclass="constructor">LocallyTrustedNonnull</span></code></td></tr><trid="type-t.LocallyCheckedNonnull"class="anchored"><tdclass="def constructor"><ahref="#type-t.LocallyCheckedNonnull"class="anchor"></a><code>| </code><code><spanclass="constructor">LocallyCheckedNonnull</span></code></td></tr><trid="type-t.StrictNonnull"class="anchored"><tdclass="def constructor"><ahref="#type-t.StrictNonnull"class="anchor"></a><code>| </code><code><spanclass="constructor">StrictNonnull</span><spanclass="keyword">of</span><ahref="index.html#type-strict_nonnull_origin">strict_nonnull_origin</a></code></td></tr></table></dt><dd><p>See <spanclass="xref-unresolved"title="unresolved reference to "Nullability.t""><code>Nullability</code>.t</span> for explanation</p></dd></dl><dl><dtclass="spec type"id="type-nullable_origin"><ahref="#type-nullable_origin"class="anchor"></a><code><spanclass="keyword">and</span> nullable_origin</code><code> = </code><tableclass="variant"><trid="type-nullable_origin.AnnotatedNullable"class="anchored"><tdclass="def constructor"><ahref="#type-nullable_origin.AnnotatedNullable"class="anchor"></a><code>| </code><code><spanclass="constructor">AnnotatedNullable</span></code></td><tdclass="doc"><p>The type is expicitly annotated with <code>@Nullable</code> in the code</p></td></tr><trid="type-nullable_origin.AnnotatedPropagatesNullable"class="anchored"><tdclass="def constructor"><ahref="#typ