This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>NullsafeMode (infer.Nullsafe.NullsafeMode)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.0"/><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>»<ahref="../index.html">Nullsafe</a>» NullsafeMode</nav><h1>Module <code>Nullsafe.NullsafeMode</code></h1></header><aside><p>Represents a type-checking mode of nullsafe.</p></aside><divclass="spec module"id="module-Trust"><ahref="#module-Trust"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Trust/index.html">Trust</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><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.Default"class="anchored"><tdclass="def constructor"><ahref="#type-t.Default"class="anchor"></a><code>| </code><code><spanclass="constructor">Default</span></code></td></tr><trid="type-t.Local"class="anchored"><tdclass="def constructor"><ahref="#type-t.Local"class="anchor"></a><code>| </code><code><spanclass="constructor">Local</span><spanclass="keyword">of</span><ahref="Trust/index.html#type-t">Trust.t</a></code></td></tr><trid="type-t.Strict"class="anchored"><tdclass="def constructor"><ahref="#type-t.Strict"class="anchor"></a><code>| </code><code><spanclass="constructor">Strict</span></code></td></tr></table></dt></dl><div><divclass="spec include"><divclass="doc"><dl><dtclass="spec value"id="val-compare"><ahref="#val-compare"class="anchor"></a><code><spanclass="keyword">val</span> compare : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dtclass="spec value"id="val-equal"><ahref="#val-equal"class="anchor"></a><code><spanclass="keyword">val</span> equal : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt></dl></div></div></div><dl><dtclass="spec value"id="val-of_annot"><ahref="#val-of_annot"class="anchor"></a><code><spanclass="keyword">val</span> of_annot : <ahref="../../IR/Annot/index.html#type-t">IR.Annot.t</a><span>-></span><span><ahref="index.html#type-t">t</a> option</span></code></dt><dd><p>Returns <code>t</code> when provided annotation matches the format of <code>@Nullsafe</code>, otherwise <code>None</code>.</p></dd></dl><dl><dtclass="spec value"id="val-of_class"><ahref="#val-of_class"class="anchor"></a><code><spanclass="keyword">val</span> of_class : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/JavaClassName/index.html#type-t">IR.JavaClassName.t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Extracts mode information from class annotations</p></dd></dl><dl><dtclass="spec value"id="val-of_procname"><ahref="#val-of_procname"class="anchor"></a><code><spanclass="keyword">val</span> of_procname : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Extracts mode information from a class where procname is defined</p></dd></dl><dl><dtclass="spec value"id="val-is_in_trust_list"><ahref="#val-is_in_trust_list"class="anchor"></a><code><spanclass="keyword">val</span> is_in_trust_list : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../IR/JavaClassName/index.html#type-t">IR.JavaClassName.t</a><span>-></span> bool</code></dt><dd><p>Check whether <code>JavaClassName.t</code> is in explicit trust list specified in the mode</p></dd></dl><dl><dtclass="spec value"id="val-is_stricter_than"><ahref="#val-is_stricter_than"class="anchor"></a><code><spanclass="keyword">val</span> is_stricter_than : <span>stricter:<ahref="index.html#type-t">t</a></span><span>-></span><span>weaker:<ahref="index.html#type-t">t</a></span><span>-></span> bool</code></dt><dd><p>Check whether <code>stricter</code> is (strongly) stricter than <code>weaker</code></p></dd></dl><dl><dtclass="spec value"id="val-severity"><ahref="#val-severity"class="anchor"></a><code><spanclass="keyword">val</span> severity : <ahref="index.html#type-t">t</a><span>-></span><ahref="../../IBase/IssueType/index.html#type-severity">IBase.IssueType.severity</a></code></dt><dd><p>Provides a default choice of issue severity for a particular mode. Rule is: severity should be ERROR if and only if it is enforced.</p></dd></dl><dl><dtclass="spec value"id="val-pp"><ahref="#val-pp"class="anchor"></a><code><spanclass="keyword">val</span> pp : Stdlib.Format.formatter <span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt></dl><dl><dtclass="spec type"id="type-nested_class_annotation_problem"><ahref="#type-nested_class_annotation_problem"class="anchor"></a><code><spanclass="keyword">type</span> nested_class_annotation_problem</code><code> = </code><tableclass="variant"><trid="type-nested_class_annotation_problem.RedundantNestedClassAnnotation"class="anchored"><tdclass="def constructor"><ahref="#type-nested_class_annotation_problem.RedundantNestedClassAnnotation"class="anchor"></a><code>| </code><code><spanclass="constructor">RedundantNestedClassAnnotation</span></code></td><tdclass="doc"><p>Nested mode is explicitly annotated exactly like the outer one.</p></td></tr><trid="type-nested_class_annotation_problem.NestedModeIsWeaker"class="anchored"><tdclass="def constructor"><ahref="#type-nested_class_annotation_problem.NestedModeIsWeaker"class="anchor"></a><code>| </code><code><spanclass="constructor">NestedModeIsWeaker</span><spanclass="keyword">of</span><ahref="index.html#type-weak_type">weak_type</a></code></td><tdclass="doc"><p>Attempt to relax the mode imposed in the outer class.</p></td></tr></table></dt><dtclass="spec type"id="type-weak_type"><ahref="#type-weak_type"class="anchor"></a><code><spanclass="keyword">and</span> weak_type</code><code> = </code><tableclass="variant"><trid="type-weak_type.ExtraTrustClass"class="anchored"><tdclass="def constructor"><ahref="#type-weak_type.ExtraTrustClass"class="anchor"></a><code>| </code><code><spanclass="constructor">ExtraTrustClass</span><spanclass="keyword">of</span><span><ahref="../../IR/JavaClassName/index.html#type-t">IR.JavaClassName.t</a> list</span></code></td><tdclass="doc"><p>Nested class has this extra list of classes</p></td></tr><trid="type-weak_type.Other"class="anchored"><tdclass="def constructor"><ahref="#type-weak_type.Other"class="anchor"></a><code>| </code><code><spanclass="constructor">Other</span></code></td></tr></table></dt></dl><dl><dtclass="spec value"id="val-check_problematic_class_annotation"><ahref="#val-check_problematic_class_annotation"class="anchor"></a><code><spanclass="keyword">val</span> check_problematic_class_annotation : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/JavaClassName/index.html#type-t">IR.JavaClassName.t</a><span>-></span><span><span>(unit,<ahref="index.html#type-nested_class_annotation_problem">nested_class_annotation_problem</a>)</span><ahref="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.result</span></code></dt><dd><p>Given a (not anonymous) class name, check if there are semantic problems with <code>@Nullsafe</code> mode annotation for this class</p></dd></dl></div></body></html>