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>EradicateChecks (infer.InferModules.EradicateChecks)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc %%VERSION%%"/><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">InferModules</a>» EradicateChecks</nav><h1>Module <code>InferModules.EradicateChecks</code></h1></header><aside><p>Module for the checks called by Eradicate.</p></aside><dl><dtclass="spec value"id="val-get_field_annotation"><ahref="#val-get_field_annotation"class="anchor"></a><code><spanclass="keyword">val</span> get_field_annotation : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferIR/InferIR__Typ/Fieldname/index.html#type-t">InferIR__Typ.Fieldname.t</a><span>-></span><ahref="../../../InferIR/InferIR__Typ/index.html#type-typ">InferIR__Typ.typ</a><span>-></span><span><span>(<ahref="../../../InferIR/InferIR__Typ/index.html#type-typ">InferIR__Typ.typ</a> * <ahref="../../../InferIR/InferIR/Annot/Item/index.html#type-t">InferIR.Annot.Item.t</a>)</span> option</span></code></dt><dtclass="spec value"id="val-report_error"><ahref="#val-report_error"class="anchor"></a><code><spanclass="keyword">val</span> report_error : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../TypeErr/index.html#type-err_instance">TypeErr.err_instance</a><span>-></span><span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a> option</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span> unit</code></dt><dtclass="spec value"id="val-explain_expr"><ahref="#val-explain_expr"class="anchor"></a><code><spanclass="keyword">val</span> explain_expr : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><span>string option</span></code></dt><dtclass="spec value"id="val-is_virtual"><ahref="#val-is_virtual"class="anchor"></a><code><spanclass="keyword">val</span> is_virtual : <span><span>(<ahref="../../../InferIR/InferIR/Mangled/index.html#type-t">InferIR.Mangled.t</a> * <spanclass="type-var">'a</span> * <spanclass="type-var">'b</span>)</span> list</span><span>-></span> bool</code></dt><dtclass="spec value"id="val-check_field_access"><ahref="#val-check_field_access"class="anchor"></a><code><spanclass="keyword">val</span> check_field_access : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/Fieldname/index.html#type-t">InferIR.Typ.Fieldname.t</a><span>-></span><ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span> unit</code></dt><dd><p>Check an access (read or write) to a field.</p></dd></dl><dl><dtclass="spec value"id="val-check_array_access"><ahref="#val-check_array_access"class="anchor"></a><code><spanclass="keyword">val</span> check_array_access : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/Fieldname/index.html#type-t">InferIR.Typ.Fieldname.t</a><span>-></span><ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span> bool <span>-></span> unit</code></dt><dd><p>Check an access to an array</p></dd></dl><dl><dtclass="spec type"id="type-from_call"><ahref="#type-from_call"class="anchor"></a><code><spanclass="keyword">type</span> from_call</code><code> = </code><tableclass="variant"><trid="type-from_call.From_condition"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_condition"class="anchor"></a><code>| </code><code><spanclass="constructor">From_condition</span></code></td><tdclass="doc"><p>Direct condition</p></td></tr><trid="type-from_call.From_instanceof"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_instanceof"class="anchor"></a><code>| </code><code><spanclass="constructor">From_instanceof</span></code></td><tdclass="doc"><p>x instanceof C</p></td></tr><trid="type-from_call.From_is_false_on_null"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_is_false_on_null"class="anchor"></a><code>| </code><code><spanclass="constructor">From_is_false_on_null</span></code></td><tdclass="doc"><p>returns false on null</p></td></tr><trid="type-from_call.From_is_true_on_null"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_is_true_on_null"class="anchor"></a><code>| </code><code><spanclass="constructor">From_is_true_on_null</span></code></td><tdclass="doc"><p>returns true on null</p></td></tr><trid="type-from_call.From_optional_isPresent"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_optional_isPresent"class="anchor"></a><code>| </code><code><spanclass="constructor">From_optional_isPresent</span></code></td><tdclass="doc"><p>x.isPresent</p></td></tr><trid="type-from_call.From_containsKey"class="anchored"><tdclass="def constructor"><ahref="#type-from_call.From_containsKey"class="anchor"></a><code>| </code><code><spanclass="constructor">From_containsKey</span></code></td><tdclass="doc"><p>x.containsKey</p></td></tr></table></dt><dd><p>Where the condition is coming from</p></dd></dl><dl><dtclass="spec value"id="val-compare_from_call"><ahref="#val-compare_from_call"class="anchor"></a><code><spanclass="keyword">val</span> compare_from_call : <ahref="index.html#type-from_call">from_call</a><span>-></span><ahref="index.html#type-from_call">from_call</a><span>-></span> int</code></dt><dtclass="spec value"id="val-equal_from_call"><ahref="#val-equal_from_call"class="anchor"></a><code><spanclass="keyword">val</span> equal_from_call : <ahref="index.html#type-from_call">from_call</a><span>-></span><ahref="index.html#type-from_call">from_call</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-check_condition"><ahref="#val-check_condition"class="anchor"></a><code><spanclass="keyword">val</span> check_condition : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span> bool <span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a><span>-></span><ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a><span>-></span> bool <span>-></span><ahref="index.html#type-from_call">from_call</a><span>-></span><ahref="../Idenv/index.html#type-t">Idenv.t</a><span>-></span><ahref="../Printer/LineReader/index.html#type-t">Printer.LineReader.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span> unit</code></dt><dd><p>Check the normalized "is zero" or "is not zero" condition of a prune instruction.</p></dd></dl><dl><dtclass="spec value"id="val-check_zero"><ahref="#val-check_zero"class="anchor"></a><code><spanclass="keyword">val</span> check_zero : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a><span>-></span><ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a><span>-></span> bool <span>-></span><ahref="index.html#type-from_call">from_call</a><span>-></span><ahref="../Idenv/index.html#type-t">Idenv.t</a><span>-></span><ahref="../Printer/LineReader/index.html#type-t">Printer.LineReader.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span> unit</code></dt><dd><p>Check an "is zero" condition.</p></dd></dl><dl><dtclass="spec value"id="val-check_nonzero"><ahref="#val-check_nonzero"class="anchor"></a><code><spanclass="keyword">val</span> check_nonzero : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a><span>-></span><ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a><span>-></span> bool <span>-></span><ahref="index.html#type-from_call">from_call</a><span>-></span><ahref="../Idenv/index.html#type-t">Idenv.t</a><span>-></span><ahref="../Printer/LineReader/index.html#type-t">Printer.LineReader.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span> unit</code></dt><dd><p>Check an "is not zero" condition.</p></dd></dl><dl><dtclass="spec value"id="val-check_field_assignment"><ahref="#val-check_field_assignment"class="anchor"></a><code><spanclass="keyword">val</span> check_field_assignment : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><spanclass="type-var">'a</span><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><spanclass="type-var">'b</span><span>-></span><spanclass="type-var">'c</span><span>-></span><spanclass="type-var">'c</span><span>-></span><spanclass="type-var">'d</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/Fieldname/index.html#type-t">InferIR.Typ.Fieldname.t</a><span>-></span><span><span>(<spanclass="type-var">'e</span> * <ahref="../../../InferIR/InferIR/Annot/Item/index.html#type-t">InferIR.Annot.Item.t</a>)</span> option</span><span>-></span><span>(<spanclass="type-var">'a</span><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><spanclass="type-var">'b</span><span>-></span><spanclass="type-var">'c</span><span>-></span><span>(<spanclass="type-var">'d</span> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> list</span>)</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <spanclass="type-var">'f</span>)</span><span>-></span> unit</code></dt><dd><p>Check an assignment to a field.</p></dd></dl><dl><dtclass="spec value"id="val-check_constructor_initialization"><ahref="#val-check_constructor_initialization"class="anchor"></a><code><spanclass="keyword">val</span> check_constructor_initialization : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><span><span><span>(<ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> * <ahref="../TypeState/index.html#type-t">TypeState.t</a>)</span><ahref="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.List.t</span><ahref="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Lazy.t</span><span>-></span><span><span><span>(<ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> * <ahref="../TypeState/index.html#type-t">TypeState.t</a>)</span><ahref="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.List.t</span><ahref="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Lazy.t</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span> unit</code></dt><dd><p>Check that nonnullable fields are initialized in constructors.</p></dd></dl><dl><dtclass="spec value"id="val-check_return_annotation"><ahref="#val-check_return_annotation"class="anchor"></a><code><spanclass="keyword">val</span> check_return_annotation : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><span><span>(<spanclass="type-var">'a</span> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <spanclass="type-var">'b</span>)</span> option</span><span>-></span><ahref="../AnnotatedSignature/index.html#type-t">AnnotatedSignature.t</a><span>-></span> bool <span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span> unit</code></dt><dd><p>Check the annotations when returning from a method.</p></dd></dl><dl><dtclass="spec value"id="val-check_call_receiver"><ahref="#val-check_call_receiver"class="anchor"></a><code><spanclass="keyword">val</span> check_call_receiver : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><spanclass="type-var">'a</span><span>-></span><span><span>(<span>(<ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> * <spanclass="type-var">'b</span>)</span> * <spanclass="type-var">'c</span>)</span> list</span><span>-></span><ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><spanclass="type-var">'a</span><span>-></span><spanclass="type-var">'b</span><span>-></span><span>(<spanclass="type-var">'c</span> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <span><spanclass="type-var">'d</span> list</span>)</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><spanclass="type-var">'e</span> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <spanclass="type-var">'f</span>)</span><span>-></span> unit</code></dt><dd><p>Check the receiver of a virtual call.</p></dd></dl><dl><dtclass="spec type"id="type-resolved_param"><ahref="#type-resolved_param"class="anchor"></a><code><spanclass="keyword">type</span> resolved_param</code><code> = </code><code>{</code><tableclass="record"><trid="type-resolved_param.num"class="anchored"><tdclass="def field"><ahref="#type-resolved_param.num"class="anchor"></a><code>num : int;</code></td></tr><trid="type-resolved_param.formal"class="anchored"><tdclass="def field"><ahref="#type-resolved_param.formal"class="anchor"></a><code>formal : <ahref="../../../InferIR/InferIR/Mangled/index.html#type-t">InferIR.Mangled.t</a> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a> * <ahref="../../../InferIR/InferIR/Typ/index.html#type-t">InferIR.Typ.t</a>;</code></td></tr><trid="type-resolved_param.actual"class="anchored"><tdclass="def field"><ahref="#type-resolved_param.actual"class="anchor"></a><code>actual : <ahref="../../../InferIR/InferIR/Exp/index.html#type-t">InferIR.Exp.t</a> * <ahref="../TypeAnnotation/index.html#type-t">TypeAnnotation.t</a>;</code></td></tr><trid="type-resolved_param.propagates_nullable"class="anchored"><tdclass="def field"><ahref="#type-resolved_param.propagates_nullable"class="anchor"></a><code>propagates_nullable : bool;</code></td></tr></table><code>}</code></dt></dl><dl><dtclass="spec value"id="val-check_call_parameters"><ahref="#val-check_call_parameters"class="anchor"></a><code><spanclass="keyword">val</span> check_call_parameters : <ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/ProcAttributes/index.html#type-t">InferIR.ProcAttributes.t</a><span>-></span><span><ahref="index.html#type-resolved_param">resolved_param</a><ahref="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.List.t</span><span>-></span><ahref="../../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a><span>-></span><ahref="../TypeErr/InstrRef/index.html#type-t">TypeErr.InstrRef.t</a><span>-></span> unit</code></dt><dd><p>Check the parameters of a call.</p></dd></dl><dl><dtclass="spec value"id="val-check_overridden_annotations"><ahref="#val-check_overridden_annotations"class="anchor"></a><code><spanclass="keyword">val</span> check_overridden_annotations : <span>(<ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/Node/index.html#type-t">InferIR.Procdesc.Node.t</a>)</span><span>-></span><ahref="../../../InferIR/InferIR/Tenv/index.html#type-t">InferIR.Tenv.t</a><span>-></span><ahref="../../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a><span>-></span><ahref="../../../InferIR/InferIR/Procdesc/index.html#type-t">InferIR.Procdesc.t</a><span>-></span><ahref="../AnnotatedSignature/index.html#type-t">AnnotatedSignature.t</a><span>-></span> unit</code></dt><dd><p>Checks if the annotations are consistent with the inherited class or with the implemented interfaces</p></dd></dl></div></body></html>