<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Callbacks (infer.Backend.Callbacks)</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">Backend</a>» Callbacks</nav><h1>Module <code>Backend.Callbacks</code></h1></header><aside><p>Module to register and invoke checkers' callbacks.</p></aside><dl><dtclass="spec type"id="type-proc_callback_args"><ahref="#type-proc_callback_args"class="anchor"></a><code><spanclass="keyword">type</span> proc_callback_args</code><code> = </code><code>{</code><tableclass="record"><trid="type-proc_callback_args.summary"class="anchored"><tdclass="def field"><ahref="#type-proc_callback_args.summary"class="anchor"></a><code>summary : <ahref="../Summary/index.html#type-t">Summary.t</a>;</code></td></tr><trid="type-proc_callback_args.exe_env"class="anchored"><tdclass="def field"><ahref="#type-proc_callback_args.exe_env"class="anchor"></a><code>exe_env : <ahref="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a>;</code></td></tr></table><code>}</code></dt><dd><p>Type of a procedure callback:</p><ul><li>List of all the procedures the callback will be called on.</li><li>get_proc_desc to get a proc desc from a proc name</li><li>Type environment.</li><li>Procedure for the callback to act on.</li></ul></dd></dl><dl><dtclass="spec type"id="type-proc_callback_t"><ahref="#type-proc_callback_t"class="anchor"></a><code><spanclass="keyword">type</span> proc_callback_t</code><code> = <ahref="index.html#type-proc_callback_args">proc_callback_args</a><span>-></span><ahref="../Summary/index.html#type-t">Summary.t</a></code></dt><dtclass="spec type"id="type-file_callback_args"><ahref="#type-file_callback_args"class="anchor"></a><code><spanclass="keyword">type</span> file_callback_args</code><code> = </code><code>{</code><tableclass="record"><trid="type-file_callback_args.procedures"class="anchored"><tdclass="def field"><ahref="#type-file_callback_args.procedures"class="anchor"></a><code>procedures : <span><ahref="../../IR/Procname/index.html#type-t">IR.Procname.t</a> list</span>;</code></td></tr><trid="type-file_callback_args.source_file"class="anchored"><tdclass="def field"><ahref="#type-file_callback_args.source_file"class="anchor"></a><code>source_file : <ahref="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a>;</code></td></tr><trid="type-file_callback_args.exe_env"class="anchored"><tdclass="def field"><ahref="#type-file_callback_args.exe_env"class="anchor"></a><code>exe_env : <ahref="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a>;</code></td></tr></table><code>}</code></dt><dtclass="spec type"id="type-file_callback_t"><ahref="#type-file_callback_t"class="anchor"></a><code><spanclass="keyword">type</span> file_callback_t</code><code> = <ahref="index.html#type-file_callback_args">file_callback_args</a><span>-></span><ahref="../../Absint/IssueLog/index.html#type-t">Absint.IssueLog.t</a></code></dt><dd><p>Result is a list of additional issues found at this stage (complementary to issues generated on per-procedure analysis stage)</p></dd></dl><dl><dtclass="spec value"id="val-register_procedure_callback"><ahref="#val-register_procedure_callback"class="anchor"></a><code><spanclass="keyword">val</span> register_procedure_callback : <span>checker_name:string</span><span>-></span><span>?⁠dynamic_dispatch:bool</span><span>-></span><ahref="../../IBase/Language/index.html#type-t">IBase.Language.t</a><span>-></span><ahref="index.html#type-proc_callback_t">proc_callback_t</a><span>-></span> unit</code></dt><dd><p>Register a procedure callback (see details above)</p></dd