2 lines
2.7 KiB

This file contains ambiguous Unicode 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>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SpecializeProcdesc (infer.IR.SpecializeProcdesc)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">IR</a> &#x00BB; SpecializeProcdesc</nav><h1>Module <code>IR.SpecializeProcdesc</code></h1></header><dl><dt class="spec exception" id="exception-UnmatchedParameters"><a href="#exception-UnmatchedParameters" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">UnmatchedParameters</span></code></dt></dl><dl><dt class="spec value" id="val-with_formals_types"><a href="#val-with_formals_types" class="anchor"></a><code><span class="keyword">val</span> with_formals_types : <span>?&#8288;has_clang_model:bool</span> <span>&#45;&gt;</span> <a href="../Procdesc/index.html#type-t">Procdesc.t</a> <span>&#45;&gt;</span> <a href="../Procname/index.html#type-t">Procname.t</a> <span>&#45;&gt;</span> <span><span>(<a href="../Exp/index.html#type-t">Exp.t</a> * <a href="../Typ/index.html#type-t">Typ.t</a>)</span> list</span> <span>&#45;&gt;</span> <a href="../Procdesc/index.html#type-t">Procdesc.t</a></code></dt><dd><p>Creates a copy of a procedure description and a list of type substitutions of the form (name, typ) where name is a parameter. The resulting procdesc is isomorphic but all the type of the parameters are replaced in the instructions according to the list. The virtual calls are also replaced to match the parameter types</p></dd></dl><dl><dt class="spec value" id="val-with_block_args"><a href="#val-with_block_args" class="anchor"></a><code><span class="keyword">val</span> with_block_args : <a href="../Procdesc/index.html#type-t">Procdesc.t</a> <span>&#45;&gt;</span> <a href="../Procname/index.html#type-t">Procname.t</a> <span>&#45;&gt;</span> <span><span><a href="../Exp/index.html#type-closure">Exp.closure</a> option</span> list</span> <span>&#45;&gt;</span> <a href="../Procdesc/index.html#type-t">Procdesc.t</a></code></dt><dd><p>Creates a copy of a procedure description given a list of possible closures that are passed as arguments to the method. The resulting procdesc is isomorphic but</p><ul><li>the block parameters are replaces with the closures</li><li>the parameters of the method are extended with parameters for the captured variables in the closures</li></ul></dd></dl></div></body></html>