You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5 lines
58 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CPredicates (infer.ASTLanguage.CPredicates)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><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">ASTLanguage</a> &#x00BB; CPredicates</nav><h1>Module <code>ASTLanguage.CPredicates</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = <a href="../ALVar/index.html#type-formula_id">ALVar.formula_id</a> * <span><a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> list</span></code></dt><dd><p>(name, <code>param1,...,paramK</code>)</p></dd></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt></dl></div></div></div><dl><dt class="spec value" id="val-captured_variables_cxx_ref"><a href="#val-captured_variables_cxx_ref" class="anchor"></a><code><span class="keyword">val</span> captured_variables_cxx_ref : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../../ATDGenerated/Clang_ast_t/index.html#type-named_decl_info">ATDGenerated.Clang_ast_t.named_decl_info</a> list</span></code></dt><dd><p>list of cxx references captured by an ObjC Block</p></dd></dl><dl><dt class="spec value" id="val-objc_block_is_capturing_var_of_type"><a href="#val-objc_block_is_capturing_var_of_type" class="anchor"></a><code><span class="keyword">val</span> objc_block_is_capturing_var_of_type : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-t">ALVar.t</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>true if the ObjC Block captures a variable of a given type</p></dd></dl><dl><dt class="spec value" id="val-objc_block_is_capturing_values"><a href="#val-objc_block_is_capturing_values" class="anchor"></a><code><span class="keyword">val</span> objc_block_is_capturing_values : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>true if the ObjC Block captures any variables</p></dd></dl><dl><dt class="spec value" id="val-call_method"><a href="#val-call_method" class="anchor"></a><code><span class="keyword">val</span> call_method : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p><code>call_method an m an</code> is true iff node an is a call to an ObjC method with name containing string m</p></dd></dl><dl><dt class="spec value" id="val-call_cxx_method"><a href="#val-call_cxx_method" class="anchor"></a><code><span class="keyword">val</span> call_cxx_method : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p><code>call_cxx_method an m an</code> is true iff node an is a call to a C++ method with name containing string m</p></dd></dl><dl><dt class="spec value" id="val-call_class_method"><a href="#val-call_class_method" class="anchor"></a><code><span class="keyword">val</span> call_class_method : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p><code>call
@implementation MyClass</code></pre></dd></dl><dl><dt class="spec value" id="val-is_objc_interface_named"><a href="#val-is_objc_interface_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_interface_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCInterfaceDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in <code>@interface MyClass</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_implementation_named"><a href="#val-is_objc_implementation_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_implementation_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCImplementationDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in <code>@implementation MyClass</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_named"><a href="#val-is_objc_category_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl or ObjCCategoryImplDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyCategory</code> in:</p><pre><code class="ml">@interface MyClass (MyCategory)
@implementation MyClass (MyCategory)</code></pre></dd></dl><dl><dt class="spec value" id="val-is_objc_category_interface_named"><a href="#val-is_objc_category_interface_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_interface_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyCategory</code> in <code>@interface MyClass (MyCategory)</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_implementation_named"><a href="#val-is_objc_category_implementation_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_implementation_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryImplDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyCategory</code> in <code>@implementation MyClass (MyCategory)</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_on_class_named"><a href="#val-is_objc_category_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_on_class_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl or ObjCCategoryImplDecl node whose class name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in:</p><pre><code class="ml">@interface MyClass (MyCategory)
@implementation MyClass (MyCategory)</code></pre></dd></dl><dl><dt class="spec value" id="val-is_objc_category_interface_on_class_named"><a href="#val-is_objc_category_interface_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_interface_on_class_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl node whose class name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in <code>@interface MyClass (MyCategory)</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_implementation_on_class_named"><a href="#val-is_objc_category_implementation_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_implementation_on_class_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryImplDecl node whose class name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in <code>@implementation MyClass (MyCategory)</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_on_subclass_of"><a href="#val-is_objc_category_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_on_subclass_of : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl or ObjCCategoryImplDecl node whose class inherits from a class whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_interface_on_subclass_of"><a href="#val-is_objc_category_interface_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_interface_on_subclass_of : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryDecl node whose class inherits from a class whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_category_implementation_on_subclass_of"><a href="#val-is_objc_category_implementation_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_objc_category_implementation_on_subclass_of : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCCategoryImplDecl node whose class inherits from a class whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-adhere_to_protocol"><a href="#val-adhere_to_protocol" class="anchor"></a><code><span class="keyword">val</span> adhere_to_protocol : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>true if an objC class adhere to a protocol</p></dd></dl><dl><dt class="spec value" id="val-is_objc_protocol_named"><a href="#val-is_objc_protocol_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_protocol_named : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current node is an ObjCProtocolDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_class_method_named"><a href="#val-is_objc_