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
59 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>CPredicates (infer.ASTLanguage.CPredicates)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.1"/><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_class_method an mname</code> is true iff node an is a call to an ObjC class method with name containing mname</p></dd></dl><dl><dt class="spec value" id="val-call_instance_method"><a href="#val-call_instance_method" class="anchor"></a><code><span class="keyword">val</span> call_instance_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_instance_method an mname</code> is true iff node an is a call to an ObjC instance method with name containing mname</p></dd></dl><dl><dt class="spec value" id="val-declaration_name"><a href="#val-declaration_name" class="anchor"></a><code><span class="keyword">val</span> declaration_name : <a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> <span>&#45;&gt;</span> <span>string option</span></code></dt><dd><p><code>declaration_name d</code> returns the name of declaration d</p></dd></dl><dl><dt class="spec value" id="val-is_enum_constant"><a href="#val-is_enum_constant" class="anchor"></a><code><span class="keyword">val</span> is_enum_constant : <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>is_enum_constant an name</code> is true iff an is an EnumConstant with name containing <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_enum_constant_of_enum"><a href="#val-is_enum_constant_of_enum" class="anchor"></a><code><span class="keyword">val</span> is_enum_constant_of_enum : <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><dt class="spec value" id="val-is_global_var"><a href="#val-is_global_var" class="anchor"></a><code><span class="keyword">val</span> is_global_var : <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><code>is_global_var an</code> is true iff an is a global variable (but not a static local)</p></dd></dl><dl><dt class="spec value" id="val-is_static_local_var"><a href="#val-is_static_local_var" class="anchor"></a><code><span class="keyword">val</span> is_static_local_var : <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><code>is_static_local_var an</code> is true iff an is a static local variable</p></dd></dl><dl><dt class="spec value" id="val-is_static_var"><a href="#val-is_static_var" class="anchor"></a><code><span class="keyword">val</span> is_static_var : <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><code>is_static_var an</code> is true iff an is a static local variable</p></dd></dl><dl><dt class="spec value" id="val-is_extern_var"><a href="#val-is_extern_var" class="anchor"></a><code><span class="keyword">val</span> is_extern_var : <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><code>is_extern_var an</code> is true iff an is a extern variable</p></dd></dl><dl><dt class="spec value" id="val-is_const_expr_var"><a href="#val-is_const_expr_var" class="anchor"></a><code><span class="keyword">val</span> is_const_expr_var : <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><code>is_const_expr_var an</code> is true iff an is a <code>const</code> variable declaration</p></dd></dl><dl><dt class="spec value" id="val-is_init_integral_constant_expr"><a href="#val-is_init_integral_constant_expr" class="anchor"></a><code><span class="keyword">val</span> is_init_integral_constant_expr : <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><code>is_init_integra_constant_expr an</code> is true iff it is an initializer and an integral constant expression, or in C++11, whether the initializer is a constant expression.</p></dd></dl><dl><dt class="spec value" id="val-is_qual_type_const"><a href="#val-is_qual_type_const" class="anchor"></a><code><span class="keyword">val</span> is_qual_type_const : <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><code>is_qual_type_const an</code> is true iff an is a qual_type <code>const</code> expression</p></dd></dl><dl><dt class="spec value" id="val-has_init_list_const_expr"><a href="#val-has_init_list_const_expr" class="anchor"></a><code><span class="keyword">val</span> has_init_list_const_expr : <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><code>has_init_list_const_expr</code> is true iff for an InitListExpr where all subexpressions are const expression</p></dd></dl><dl><dt class="spec value" id="val-call_function"><a href="#val-call_function" class="anchor"></a><code><span class="keyword">val</span> call_function : <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_function an name</code> is true iff an is a call to a function whose name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-call_qualified_function"><a href="#val-call_qualified_function" class="anchor"></a><code><span class="keyword">val</span> call_qualified_function : <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_function an name</code> is true iff an is a call to a function whose fully qualified name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_strong_property"><a href="#val-is_strong_property" class="anchor"></a><code><span class="keyword">val</span> is_strong_property : <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><code>is_strong_property an</code> is true iff an denotes a objc property declaration with <code>strong</code> attribute</p></dd></dl><dl><dt class="spec value" id="val-is_strong_ivar"><a href="#val-is_strong_ivar" class="anchor"></a><code><span class="keyword">val</span> is_strong_ivar : <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><code>is_strong_ivar an</code> is true iff an denotes a objc ivar with <code>strong</code> attribute</p></dd></dl><dl><dt class="spec value" id="val-is_weak_property"><a href="#val-is_weak_property" class="anchor"></a><code><span class="keyword">val</span> is_weak_property : <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><code>is_weak_property an</code> is true iff an denotes a objc property declaration with <code>weak</code> attribute</p></dd></dl><dl><dt class="spec value" id="val-is_assign_property"><a href="#val-is_assign_property" class="anchor"></a><code><span class="keyword">val</span> is_assign_property : <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><code>is_assign_property an</code> is true iff an denotes a objc property declaration with <code>assign</code> attribute</p></dd></dl><dl><dt class="spec value" id="val-is_property_pointer_type"><a href="#val-is_property_pointer_type" class="anchor"></a><code><span class="keyword">val</span> is_property_pointer_type : <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><code>is_property_pointer_type an</code> is true iff an denotes a objc property declaration with type pointer</p></dd></dl><dl><dt class="spec value" id="val-context_in_synchronized_block"><a href="#val-context_in_synchronized_block" class="anchor"></a><code><span class="keyword">val</span> context_in_synchronized_block : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>true if the current node is in the context of a synchronized objc block</p></dd></dl><dl><dt class="spec value" id="val-is_ivar_atomic"><a href="#val-is_ivar_atomic" class="anchor"></a><code><span class="keyword">val</span> is_ivar_atomic : <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><code>is_ivar_atomic an</code> is true iff an denotes an atomic objc ivar</p></dd></dl><dl><dt class="spec value" id="val-is_ivar_readonly"><a href="#val-is_ivar_readonly" class="anchor"></a><code><span class="keyword">val</span> is_ivar_readonly : <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><code>is_ivar_readonly an</code> is true iff an denotes a readonly objc ivar</p></dd></dl><dl><dt class="spec value" id="val-is_method_property_accessor_of_ivar"><a href="#val-is_method_property_accessor_of_ivar" class="anchor"></a><code><span class="keyword">val</span> is_method_property_accessor_of_ivar : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_in_block"><a href="#val-is_in_block" class="anchor"></a><code><span class="keyword">val</span> is_in_block : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>true if the current node is in the context of an objc block</p></dd></dl><dl><dt class="spec value" id="val-is_optional_objc_method"><a href="#val-is_optional_objc_method" class="anchor"></a><code><span class="keyword">val</span> is_optional_objc_method : <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 current node is an objc method declaration which is declared with <code>@optional</code></p></dd></dl><dl><dt class="spec value" id="val-is_call_to_optional_objc_method"><a href="#val-is_call_to_optional_objc_method" class="anchor"></a><code><span class="keyword">val</span> is_call_to_optional_objc_method : <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 current node is a call to an objc method declaration which is declared with <code>@optional</code></p></dd></dl><dl><dt class="spec value" id="val-is_in_cxx_constructor"><a href="#val-is_in_cxx_constructor" class="anchor"></a><code><span class="keyword">val</span> is_in_cxx_constructor : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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>is_in_cxx_constructor context name</code> is true if the curent node is within a CXX constructor whose name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_in_cxx_destructor"><a href="#val-is_in_cxx_destructor" class="anchor"></a><code><span class="keyword">val</span> is_in_cxx_destructor : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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>is_in_destructor_constructor context name</code> is true if the curent node is within a CXX destructor whose name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_in_cxx_method"><a href="#val-is_in_cxx_method" class="anchor"></a><code><span class="keyword">val</span> is_in_cxx_method : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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>is_in_cxx_method context name</code> is true if the curent node is within a CXX method whose name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_in_function"><a href="#val-is_in_function" class="anchor"></a><code><span class="keyword">val</span> is_in_function : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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>is_in_function context name</code> is true if the curent node is within a function whose name contains <code>name</code></p></dd></dl><dl><dt class="spec value" id="val-is_objc_extension"><a href="#val-is_objc_extension" class="anchor"></a><code><span class="keyword">val</span> is_objc_extension : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dd><p>Checks if the current file has an ObjC file extension (I.E. <code>.m</code> or <code>.mm</code>)</p></dd></dl><dl><dt class="spec value" id="val-is_objc_class_named"><a href="#val-is_objc_class_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_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 ObjCInterfaceDecl or ObjCImplementationDecl node whose name matches the provided REGEXP</p><p>Matches on <code>MyClass</code> in:</p><pre><code class="ml">@interface MyClass
@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_class_method_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_class_method_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 ObjCMethodDecl node whose name matches the provided REGEXP and is a class method</p></dd></dl><dl><dt class="spec value" id="val-is_objc_instance_method_named"><a href="#val-is_objc_instance_method_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_instance_method_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 ObjCMethodDecl node whose name matches the provided REGEXP and is an instance method</p></dd></dl><dl><dt class="spec value" id="val-is_objc_method_named"><a href="#val-is_objc_method_named" class="anchor"></a><code><span class="keyword">val</span> is_objc_method_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 ObjCMethodDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_constructor"><a href="#val-is_objc_constructor" class="anchor"></a><code><span class="keyword">val</span> is_objc_constructor : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dd><p><code>is_in_objc_constructor context</code> is true if the curent node is within an ObjC constructor</p></dd></dl><dl><dt class="spec value" id="val-objc_class_has_only_one_constructor_method_named"><a href="#val-objc_class_has_only_one_constructor_method_named" class="anchor"></a><code><span class="keyword">val</span> objc_class_has_only_one_constructor_method_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>true if an ObjC class has only one class method and is a constructor whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_dealloc"><a href="#val-is_objc_dealloc" class="anchor"></a><code><span class="keyword">val</span> is_objc_dealloc : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> bool</code></dt><dd><p><code>is_in_objc_dealloc context</code> is true if the curent node is within an ObjC dealloc method</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_subclass_of"><a href="#val-is_in_objc_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_subclass_of : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCInterfaceDecl or ObjCImplementationDecl node which inherits from a class whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_interface_named"><a href="#val-is_in_objc_interface_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_interface_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCInterfaceDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_implementation_named"><a href="#val-is_in_objc_implementation_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_implementation_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCImplementationDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_class_named"><a href="#val-is_in_objc_class_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_class_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCInterfaceDecl or ObjCImplementationDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_interface_on_class_named"><a href="#val-is_in_objc_category_interface_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_interface_on_class_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryDecl node whose class name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_implementation_on_class_named"><a href="#val-is_in_objc_category_implementation_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_implementation_on_class_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryImplDecl node whose class name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_on_class_named"><a href="#val-is_in_objc_category_on_class_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_on_class_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryDecl or ObjCCategoryImplDecl node whose class name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_interface_on_subclass_of"><a href="#val-is_in_objc_category_interface_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_interface_on_subclass_of : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of 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_in_objc_category_implementation_on_subclass_of"><a href="#val-is_in_objc_category_implementation_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_implementation_on_subclass_of : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of 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-is_in_objc_category_on_subclass_of"><a href="#val-is_in_objc_category_on_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_on_subclass_of : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of 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_in_objc_category_interface_named"><a href="#val-is_in_objc_category_interface_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_interface_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_implementation_named"><a href="#val-is_in_objc_category_implementation_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_implementation_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryImplDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_category_named"><a href="#val-is_in_objc_category_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_category_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCCategoryDecl or ObjCCategoryImplDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_protocol_named"><a href="#val-is_in_objc_protocol_named" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_protocol_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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 a subnode of an ObjCProtocolDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_class_method"><a href="#val-is_in_objc_class_method" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_class_method : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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, or a parent node, is an ObjCMethodDecl node whose name matches the provided REGEXP and is a class method</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_instance_method"><a href="#val-is_in_objc_instance_method" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_instance_method : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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, or a parent node, is an ObjCMethodDecl node whose name matches the provided REGEXP and is an instance method</p></dd></dl><dl><dt class="spec value" id="val-is_in_objc_method"><a href="#val-is_in_objc_method" class="anchor"></a><code><span class="keyword">val</span> is_in_objc_method : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</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, or a parent node, is an ObjCMethodDecl node whose name matches the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-is_objc_method_overriding"><a href="#val-is_objc_method_overriding" class="anchor"></a><code><span class="keyword">val</span> is_objc_method_overriding : <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>Checks if the current node is an ObjCMethodDecl node and is overriding a method in the superclass.</p><p>A method is said to override any method in the class base classes, its protocols, or its categories' protocols, that has the same selector and is of the same kind (class or instance). A method in an implementation is not considered as overriding the same method in the interface or its categories.</p></dd></dl><dl><dt class="spec value" id="val-is_objc_method_exposed"><a href="#val-is_objc_method_exposed" class="anchor"></a><code><span class="keyword">val</span> is_objc_method_exposed : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <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>Checks if the current node is an ObjCMethodDecl node and is exposed in an interface.</p><p>A method is said to be exposed if it's overriding a method or it's declared in a matching interface. For example, a method defined in a class implementation is exposed if it's declared in the class interface or interface extension, but not if it's declared in a category on the class. If the current node is a subnode of an ObjCInterfaceDecl, ObjCCategoryDecl, or ObjCProtocolDecl, this predicate returns false.</p></dd></dl><dl><dt class="spec value" id="val-captures_cxx_references"><a href="#val-captures_cxx_references" class="anchor"></a><code><span class="keyword">val</span> captures_cxx_references : <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><code>captures_cxx_references an</code> is true iff the node an captures some CXX references</p></dd></dl><dl><dt class="spec value" id="val-is_binop_with_kind"><a href="#val-is_binop_with_kind" class="anchor"></a><code><span class="keyword">val</span> is_binop_with_kind : <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>is_binop_with_kind an binop</code> is true iff an denotes a binary operator of kind binop</p></dd></dl><dl><dt class="spec value" id="val-is_unop_with_kind"><a href="#val-is_unop_with_kind" class="anchor"></a><code><span class="keyword">val</span> is_unop_with_kind : <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>is_unop_of_kind an unop</code> is true iff an denotes a unary operator of kind unop</p></dd></dl><dl><dt class="spec value" id="val-has_cast_kind"><a href="#val-has_cast_kind" class="anchor"></a><code><span class="keyword">val</span> has_cast_kind : <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>has_cast_kind an cast</code> is true iff an denotes a cast operation of kind cast</p></dd></dl><dl><dt class="spec value" id="val-isa"><a href="#val-isa" class="anchor"></a><code><span class="keyword">val</span> isa : <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>node an is of class classname</p></dd></dl><dl><dt class="spec value" id="val-is_node"><a href="#val-is_node" class="anchor"></a><code><span class="keyword">val</span> is_node : <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>is_node an nodename</code> is true iff an is a node of kind nodename</p></dd></dl><dl><dt class="spec value" id="val-declaration_has_name"><a href="#val-declaration_has_name" class="anchor"></a><code><span class="keyword">val</span> declaration_has_name : <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><dt class="spec value" id="val-declaration_ref_name"><a href="#val-declaration_ref_name" class="anchor"></a><code><span class="keyword">val</span> declaration_ref_name : <span>?&#8288;kind:<a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl_kind">ATDGenerated.Clang_ast_t.decl_kind</a></span> <span>&#45;&gt;</span> <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>declaration_ref_has_name an n</code> is true iff node an is a DeclRefExpr with name containing string n. The optional parameter kind allow to distinguish between special kind of decl_ref_exprs like <code>is_enum_constant</code>.</p></dd></dl><dl><dt class="spec value" id="val-is_class"><a href="#val-is_class" class="anchor"></a><code><span class="keyword">val</span> is_class : <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><dt class="spec value" id="val-pp_predicate"><a href="#val-pp_predicate" class="anchor"></a><code><span class="keyword">val</span> pp_predicate : Stdlib.Format.formatter <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-has_type"><a href="#val-has_type" class="anchor"></a><code><span class="keyword">val</span> has_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-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-has_value"><a href="#val-has_value" class="anchor"></a><code><span class="keyword">val</span> has_value : <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><dt class="spec value" id="val-method_return_type"><a href="#val-method_return_type" class="anchor"></a><code><span class="keyword">val</span> method_return_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-alexp">ALVar.alexp</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-has_type_subprotocol_of"><a href="#val-has_type_subprotocol_of" class="anchor"></a><code><span class="keyword">val</span> has_type_subprotocol_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><dt class="spec value" id="val-get_selector"><a href="#val-get_selector" class="anchor"></a><code><span class="keyword">val</span> get_selector : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span>string option</span></code></dt><dt class="spec value" id="val-within_responds_to_selector_block"><a href="#val-within_responds_to_selector_block" class="anchor"></a><code><span class="keyword">val</span> within_responds_to_selector_block : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-objc_method_call_within_responds_to_selector_block"><a href="#val-objc_method_call_within_responds_to_selector_block" class="anchor"></a><code><span class="keyword">val</span> objc_method_call_within_responds_to_selector_block : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <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 a ObjC method call is withing the scope of a responds_to_selector check</p></dd></dl><dl><dt class="spec value" id="val-using_namespace"><a href="#val-using_namespace" class="anchor"></a><code><span class="keyword">val</span> using_namespace : <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><dt class="spec value" id="val-receiver_class_method_call"><a href="#val-receiver_class_method_call" class="anchor"></a><code><span class="keyword">val</span> receiver_class_method_call : <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-decl">ATDGenerated.Clang_ast_t.decl</a> option</span></code></dt><dt class="spec value" id="val-receiver_method_call"><a href="#val-receiver_method_call" class="anchor"></a><code><span class="keyword">val</span> receiver_method_call : <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-decl">ATDGenerated.Clang_ast_t.decl</a> option</span></code></dt><dt class="spec value" id="val-is_receiver_objc_class_type"><a href="#val-is_receiver_objc_class_type" class="anchor"></a><code><span class="keyword">val</span> is_receiver_objc_class_type : <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>Checks if the current node is an ObjCMessageExpr node and has a receiver equivalent to the <code>Class</code> type.</p></dd></dl><dl><dt class="spec value" id="val-is_receiver_objc_id_type"><a href="#val-is_receiver_objc_id_type" class="anchor"></a><code><span class="keyword">val</span> is_receiver_objc_id_type : <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>Checks if the current node is an ObjCMessageExpr node and has a receiver equivalent to the <code>id</code> type.</p></dd></dl><dl><dt class="spec value" id="val-is_receiver_subclass_of"><a href="#val-is_receiver_subclass_of" class="anchor"></a><code><span class="keyword">val</span> is_receiver_subclass_of : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <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 ObjCMessageExpr node and has a receiver which inherits from a class whose name matches the provided REGEXP.</p></dd></dl><dl><dt class="spec value" id="val-is_receiver_class_named"><a href="#val-is_receiver_class_named" class="anchor"></a><code><span class="keyword">val</span> is_receiver_class_named : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <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 ObjCMessageExpr node and has a receiver whose class name matches the provided REGEXP.</p></dd></dl><dl><dt class="spec value" id="val-is_receiver_super"><a href="#val-is_receiver_super" class="anchor"></a><code><span class="keyword">val</span> is_receiver_super : <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>Checks if the current node is an ObjCMessageExpr node and has a receiver which is equal to <code>super</code>.</p><p>Matches on <code>super myMethod</code>;</p></dd></dl><dl><dt class="spec value" id="val-is_receiver_self"><a href="#val-is_receiver_self" class="anchor"></a><code><span class="keyword">val</span> is_receiver_self : <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>Checks if the current node is an ObjCMessageExpr node and has a receiver which is equal to <code>self</code>.</p></dd></dl><dl><dt class="spec value" id="val-is_at_selector_with_name"><a href="#val-is_at_selector_with_name" class="anchor"></a><code><span class="keyword">val</span> is_at_selector_with_name : <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>an is an expression <code>@selector</code> with whose name in the language of re</p></dd></dl><dl><dt class="spec value" id="val-has_visibility_attribute"><a href="#val-has_visibility_attribute" class="anchor"></a><code><span class="keyword">val</span> has_visibility_attribute : <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><dt class="spec value" id="val-cxx_construct_expr_has_name"><a href="#val-cxx_construct_expr_has_name" class="anchor"></a><code><span class="keyword">val</span> cxx_construct_expr_has_name : <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>true if the node is a CXXConstruct with name matching the provided REGEXP</p></dd></dl><dl><dt class="spec value" id="val-has_used_attribute"><a href="#val-has_used_attribute" class="anchor"></a><code><span class="keyword">val</span> has_used_attribute : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-has_no_escape_attribute"><a href="#val-has_no_escape_attribute" class="anchor"></a><code><span class="keyword">val</span> has_no_escape_attribute : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-within_available_class_block"><a href="#val-within_available_class_block" class="anchor"></a><code><span class="keyword">val</span> within_available_class_block : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-has_type_const_ptr_to_objc_class"><a href="#val-has_type_const_ptr_to_objc_class" class="anchor"></a><code><span class="keyword">val</span> has_type_const_ptr_to_objc_class : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_decl"><a href="#val-is_decl" class="anchor"></a><code><span class="keyword">val</span> is_decl : <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>is_decl an is true iff an is a node denoting a declaration</p></dd></dl><dl><dt class="spec value" id="val-get_ast_node_type_ptr"><a href="#val-get_ast_node_type_ptr" class="anchor"></a><code><span class="keyword">val</span> get_ast_node_type_ptr : <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-type_ptr">ATDGenerated.Clang_ast_t.type_ptr</a> option</span></code></dt><dt class="spec value" id="val-is_method_called_by_superclass"><a href="#val-is_method_called_by_superclass" class="anchor"></a><code><span class="keyword">val</span> is_method_called_by_superclass : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-is_cxx_copy_constructor"><a href="#val-is_cxx_copy_constructor" class="anchor"></a><code><span class="keyword">val</span> is_cxx_copy_constructor : <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 current node is a C++ copy constructor</p></dd></dl><dl><dt class="spec value" id="val-has_cxx_fully_qualified_name"><a href="#val-has_cxx_fully_qualified_name" class="anchor"></a><code><span class="keyword">val</span> has_cxx_fully_qualified_name : <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>true iff node has C++ fully qualified name (w/class and namespace) matching the given regexp</p></dd></dl><dl><dt class="spec value" id="val-has_cxx_fully_qualified_name_in_custom_symbols"><a href="#val-has_cxx_fully_qualified_name_in_custom_symbols" class="anchor"></a><code><span class="keyword">val</span> has_cxx_fully_qualified_name_in_custom_symbols : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool</code></dt><dd><p>true iff node has C++ fully qualified name (w/class and namespace) matching a prefix on the given named custom symbol list</p></dd></dl><dl><dt class="spec value" id="val-is_in_source_file"><a href="#val-is_in_source_file" class="anchor"></a><code><span class="keyword">val</span> is_in_source_file : <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>True iff the source file path of the given node matches the given regexp or string.</p></dd></dl><dl><dt class="spec value" id="val-is_referencing_decl_from_source_file"><a href="#val-is_referencing_decl_from_source_file" class="anchor"></a><code><span class="keyword">val</span> is_referencing_decl_from_source_file : <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>True iff the given node is a DeclRefExpr referencing a decl whose source file path matches the given regexp or string.</p></dd></dl><dl><dt class="spec value" id="val-is_cxx_method_overriding"><a href="#val-is_cxx_method_overriding" class="anchor"></a><code><span class="keyword">val</span> is_cxx_method_overriding : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> option</span> <span>&#45;&gt;</span> bool</code></dt><dd><p>True iff the current node is a CXXMethodDecl node and is overriding a method whose fully-qualified name (with class and namespace) matches the given regexp (if given, otherwise any overriding method satisfies).</p></dd></dl><dl><dt class="spec value" id="val-is_init_expr_cxx11_constant"><a href="#val-is_init_expr_cxx11_constant" class="anchor"></a><code><span class="keyword">val</span> is_init_expr_cxx11_constant : <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 current node is classified as C++11 constant expression by the AST. It works only for VarDecl init expr</p></dd></dl><dl><dt class="spec value" id="val-cxx_construct_expr_has_no_parameters"><a href="#val-cxx_construct_expr_has_no_parameters" class="anchor"></a><code><span class="keyword">val</span> cxx_construct_expr_has_no_parameters : <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 a construct expr has no subexpressions</p></dd></dl><dl><dt class="spec value" id="val-has_unavailable_attribute"><a href="#val-has_unavailable_attribute" class="anchor"></a><code><span class="keyword">val</span> has_unavailable_attribute : <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 is a declaration has an Unavailable attribute</p></dd></dl></div></body></html>