<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>PatternMatch (infer.Absint.PatternMatch)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><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">Absint</a>» PatternMatch</nav><h1>Module <code>Absint.PatternMatch</code></h1></header><aside><p>Module for Pattern matching.</p></aside><dl><dtclass="spec value"id="val-get_this_type_nonstatic_methods_only"><ahref="#val-get_this_type_nonstatic_methods_only"class="anchor"></a><code><spanclass="keyword">val</span> get_this_type_nonstatic_methods_only : <ahref="../../IR/ProcAttributes/index.html#type-t">IR.ProcAttributes.t</a><span>-></span><span><ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a> option</span></code></dt><dd><p>Get the `this` type of a procedure. Should not be called on non-static methods, otherwise it can return a wrong type</p></dd></dl><dl><dtclass="spec value"id="val-get_type_name"><ahref="#val-get_type_name"class="anchor"></a><code><spanclass="keyword">val</span> get_type_name : <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a><span>-></span> string</code></dt><dd><p>Get the name of a type</p></dd></dl><dl><dtclass="spec value"id="val-get_vararg_type_names"><ahref="#val-get_vararg_type_names"class="anchor"></a><code><spanclass="keyword">val</span> get_vararg_type_names : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a><span>-></span><ahref="../../IR/Pvar/index.html#type-t">IR.Pvar.t</a><span>-></span><span>string list</span></code></dt><dd><p>Get the type names of a variable argument</p></dd></dl><dl><dtclass="spec value"id="val-is_subtype"><ahref="#val-is_subtype"class="anchor"></a><code><spanclass="keyword">val</span> is_subtype : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a><span>-></span><ahref="../../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a><span>-></span> bool</code></dt><dd><p>Is the type a transitive subtype of the typename?</p></dd></dl><dl><dtclass="spec value"id="val-is_subtype_of_str"><ahref="#val-is_subtype_of_str"class="anchor"></a><code><spanclass="keyword">val</span> is_subtype_of_str : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><ahref="../../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a><span>-></span> string <span>-></span> bool</code></dt><dd><p>Resolve <code>typ_str</code> in <code>tenv</code>, then check <code>typ</code><: <code>typ_str</code></p></dd></dl><divclass="spec module"id="module-Java"><ahref="#module-Java"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Java/index.html">Java</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec value"id="val-supertype_exists"><ahref="#val-supertype_exists"class="anchor"></a><code><spanclass="keyword">val</span> supertype_exists : <ahref="../../IR/Tenv/index.html#type-t">IR.Tenv.t</a><span>-></span><span>(<ahref="../../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a><span>-></span><ahref="../../IR/Struct/index.html#type-t">IR.Struct.t</a><span>-></span> bool)</span><span>-></span><ahref="../../IR/Typ/Name/index.html#type-t">IR.Typ.Name.t</a><span>-></span> bool</code></dt><dd><p>Holds iff the predicate holds on a supertype of the named type, including the type itself</p></dd></dl><dl><dtclass="spec value"id="val-supertype_find_map_opt"><ahref="#val-supertype_find_map_opt"class="anchor"></a><code><spanclass="keyword">val<