<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Annotations (infer.Absint.Annotations)</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> » <a href="../index.html">Absint</a> » Annotations</nav><h1>Module <code>Absint.Annotations</code></h1></header><aside><p>Annotations.</p></aside><dl><dt class="spec value" id="val-any_thread"><a href="#val-any_thread" class="anchor"></a><code><span class="keyword">val</span> any_thread : string</code></dt><dt class="spec value" id="val-auto_cleanup"><a href="#val-auto_cleanup" class="anchor"></a><code><span class="keyword">val</span> auto_cleanup : string</code></dt><dt class="spec value" id="val-expensive"><a href="#val-expensive" class="anchor"></a><code><span class="keyword">val</span> expensive : string</code></dt><dt class="spec value" id="val-inject_prop"><a href="#val-inject_prop" class="anchor"></a><code><span class="keyword">val</span> inject_prop : string</code></dt><dt class="spec value" id="val-lockless"><a href="#val-lockless" class="anchor"></a><code><span class="keyword">val</span> lockless : string</code></dt><dt class="spec value" id="val-no_allocation"><a href="#val-no_allocation" class="anchor"></a><code><span class="keyword">val</span> no_allocation : string</code></dt><dt class="spec value" id="val-nullable"><a href="#val-nullable" class="anchor"></a><code><span class="keyword">val</span> nullable : string</code></dt><dt class="spec value" id="val-nonnull"><a href="#val-nonnull" class="anchor"></a><code><span class="keyword">val</span> nonnull : string</code></dt><dt class="spec value" id="val-performance_critical"><a href="#val-performance_critical" class="anchor"></a><code><span class="keyword">val</span> performance_critical : string</code></dt><dt class="spec value" id="val-prop"><a href="#val-prop" class="anchor"></a><code><span class="keyword">val</span> prop : string</code></dt><dt class="spec value" id="val-for_non_ui_thread"><a href="#val-for_non_ui_thread" class="anchor"></a><code><span class="keyword">val</span> for_non_ui_thread : string</code></dt><dt class="spec value" id="val-for_ui_thread"><a href="#val-for_ui_thread" class="anchor"></a><code><span class="keyword">val</span> for_ui_thread : string</code></dt><dt class="spec value" id="val-guarded_by"><a href="#val-guarded_by" class="anchor"></a><code><span class="keyword">val</span> guarded_by : string</code></dt><dt class="spec value" id="val-suppress_lint"><a href="#val-suppress_lint" class="anchor"></a><code><span class="keyword">val</span> suppress_lint : string</code></dt><dt class="spec value" id="val-thread_safe"><a href="#val-thread_safe" class="anchor"></a><code><span class="keyword">val</span> thread_safe : string</code></dt><dt class="spec value" id="val-mainthread"><a href="#val-mainthread" class="anchor"></a><code><span class="keyword">val</span> mainthread : string</code></dt><dt class="spec value" id="val-ui_thread"><a href="#val-ui_thread" class="anchor"></a><code><span class="keyword">val</span> ui_thread : string</code></dt><dt class="spec value" id="val-worker_thread"><a href="#val-worker_thread" class="anchor"></a><code><span class="keyword">val</span> worker_thread : string</code></dt><dt class="spec value" id="val-visibleForTesting"><a href="#val-visibleForTesting" class="anchor"></a><code><span class="keyword">val</span> visibleForTesting : string</code></dt><dt class="spec value" id="val-annot_ends_with"><a href="#val-annot_ends_with" class="anchor"></a><code><span class="keyword">val</span> annot_ends_with : <a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> <span>-></span> string <span>-></span> bool</code></dt><dd><p><code>annot_ends_with annot ann_name</code> returns true if the class name of <code>annot</code>, without the package, is equal to <code>ann_name</code></p></dd></dl><dl><dt class="spec value" id="val-ia_ends_with"><a href="#val-ia_ends_with" class="anchor"></a><code><span class="keyword">val</span> ia_ends_with : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> string <span>-></span> bool</code></dt><dd><p>Check if there is an annotation in <code>ia</code> which ends with the given name</p></dd></dl><dl><dt class="spec value" id="val-ia_has_annotation_with"><a href="#val-ia_has_annotation_with" class="anchor"></a><code><span class="keyword">val</span> ia_has_annotation_with : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> <span>(<a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_false_on_null"><a href="#val-ia_is_false_on_null" class="anchor"></a><code><span class="keyword">val</span> ia_is_false_on_null : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_initializer"><a href="#val-ia_is_initializer" class="anchor"></a><code><span class="keyword">val</span> ia_is_initializer : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_cleanup"><a href="#val-ia_is_cleanup" class="anchor"></a><code><span class="keyword">val</span> ia_is_cleanup : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_field_injector_readonly"><a href="#val-ia_is_field_injector_readonly" class="anchor"></a><code><span class="keyword">val</span> ia_is_field_injector_readonly : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dd><p>Annotations for readonly injectors. The injector framework initializes the field but does not write null into it.</p></dd></dl><dl><dt class="spec value" id="val-ia_is_field_injector_readwrite"><a href="#val-ia_is_field_injector_readwrite" class="anchor"></a><code><span class="keyword">val</span> ia_is_field_injector_readwrite : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dd><p>Annotations for read-write injectors. The injector framework initializes the field and can write null into it.</p></dd></dl><dl><dt class="spec value" id="val-ia_is_nonnull"><a href="#val-ia_is_nonnull" class="anchor"></a><code><span class="keyword">val</span> ia_is_nonnull : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_nullable"><a href="#val-ia_is_nullable" class="anchor"></a><code><span class="keyword">val</span> ia_is_nullable : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_nullsafe_strict"><a href="#val-ia_is_nullsafe_strict" class="anchor"></a><code><span class="keyword">val</span> ia_is_nullsafe_strict : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_find_nullsafe"><a href="#val-ia_find_nullsafe" class="anchor"></a><code><span class="keyword">val</span> ia_find_nullsafe : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> <span><a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> option</span></code></dt><dt class="spec value" id="val-ia_is_true_on_null"><a href="#val-ia_is_true_on_null" class="anchor"></a><code><span class="keyword">val</span> ia_is_true_on_null : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_expensive"><a href="#val-ia_is_expensive" class="anchor"></a><code><span class="keyword">val</span> ia_is_expensive : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_functional"><a href="#val-ia_is_functional" class="anchor"></a><code><span class="keyword">val</span> ia_is_functional : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_propagates_nullable"><a href="#val-ia_is_propagates_nullable" class="anchor"></a><code><span class="keyword">val</span> ia_is_propagates_nullable : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_ignore_allocations"><a href="#val-ia_is_ignore_allocations" class="anchor"></a><code><span class="keyword">val</span> ia_is_ignore_allocations : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_inject"><a href="#val-ia_is_inject" class="anchor"></a><code><span class="keyword">val</span> ia_is_inject : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_json_field"><a href="#val-ia_is_json_field" class="anchor"></a><code><span class="keyword">val</span> ia_is_json_field : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_suppress_lint"><a href="#val-ia_is_suppress_lint" class="anchor"></a><code><span class="keyword">val</span> ia_is_suppress_lint : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_not_thread_safe"><a href="#val-ia_is_not_thread_safe" class="anchor"></a><code><span class="keyword">val</span> ia_is_not_thread_safe : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_nonblocking"><a href="#val-ia_is_nonblocking" class="anchor"></a><code><span class="keyword">val</span> ia_is_nonblocking : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_returns_ownership"><a href="#val-ia_is_returns_ownership" class="anchor"></a><code><span class="keyword">val</span> ia_is_returns_ownership : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_synchronized_collection"><a href="#val-ia_is_synchronized_collection" class="anchor"></a><code><span class="keyword">val</span> ia_is_synchronized_collection : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_thread_safe"><a href="#val-ia_is_thread_safe" class="anchor"></a><code><span class="keyword">val</span> ia_is_thread_safe : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_thread_confined"><a href="#val-ia_is_thread_confined" class="anchor"></a><code><span class="keyword">val</span> ia_is_thread_confined : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_thrift_service"><a href="#val-ia_is_thrift_service" class="anchor"></a><code><span class="keyword">val</span> ia_is_thrift_service : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_volatile"><a href="#val-ia_is_volatile" class="anchor"></a><code><span class="keyword">val</span> ia_is_volatile : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_worker_thread"><a href="#val-ia_is_worker_thread" class="anchor"></a><code><span class="keyword">val</span> ia_is_worker_thread : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-ia_is_uithread_equivalent"><a href="#val-ia_is_uithread_equivalent" class="anchor"></a><code><span class="keyword">val</span> ia_is_uithread_equivalent : <a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-pdesc_has_return_annot"><a href="#val-pdesc_has_return_annot" class="anchor"></a><code><span class="keyword">val</span> pdesc_has_return_annot : <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dd><p>return true if the given predicate evaluates to true on the annotation of <code>pdesc</code>'s return value</p></dd></dl><dl><dt class="spec value" id="val-pname_has_return_annot"><a href="#val-pname_has_return_annot" class="anchor"></a><code><span class="keyword">val</span> pname_has_return_annot : <a href="../../IR/Procname/index.html#type-t">IR.Procname.t</a> <span>-></span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dd><p>return true if the given predicate evaluates to true on the annotation of <code>pname</code>'s return value</p></dd></dl><dl><dt class="spec value" id="val-pdesc_return_annot_ends_with"><a href="#val-pdesc_return_annot_ends_with" class="anchor"></a><code><span class="keyword">val</span> pdesc_return_annot_ends_with : <a href="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a> <span>-></span> string <span>-></span> bool</code></dt><dd><p>return true if <code>pdesc</code>'s return value is annotated with a value ending with the given string</p></dd></dl><dl><dt class="spec value" id="val-ma_has_annotation_with"><a href="#val-ma_has_annotation_with" class="anchor"></a><code><span class="keyword">val</span> ma_has_annotation_with : <a href="../../IR/Annot/Method/index.html#type-t">IR.Annot.Method.t</a> <span>-></span> <span>(<a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dt class="spec value" id="val-field_has_annot"><a href="#val-field_has_annot" class="anchor"></a><code><span class="keyword">val</span> field_has_annot : <a href="../../IR/Fieldname/index.html#type-t">IR.Fieldname.t</a> <span>-></span> <a href="../../IR/Struct/index.html#type-t">IR.Struct.t</a> <span>-></span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dt class="spec value" id="val-struct_typ_has_annot"><a href="#val-struct_typ_has_annot" class="anchor"></a><code><span class="keyword">val</span> struct_typ_has_annot : <a href="../../IR/Struct/index.html#type-t">IR.Struct.t</a> <span>-></span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>-></span> bool)</span> <span>-></span> bool</code></dt><dd><p>return true if the given predicate evaluates to true on some annotation of <code>struct_typ</code></p></dd></dl></div></body></html>