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.

2 lines
15 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>Annotations (infer.Absint.Annotations)</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">Absint</a> &#x00BB; 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>&#45;&gt;</span> string <span>&#45;&gt;</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>&#45;&gt;</span> string <span>&#45;&gt;</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>&#45;&gt;</span> <span>(<a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</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>&#45;&gt;</span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>&#45;&gt;</span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>&#45;&gt;</span> string <span>&#45;&gt;</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>&#45;&gt;</span> <span>(<a href="../../IR/Annot/index.html#type-t">IR.Annot.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>&#45;&gt;</span> <a href="../../IR/Struct/index.html#type-t">IR.Struct.t</a> <span>&#45;&gt;</span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>&#45;&gt;</span> <span>(<a href="../../IR/Annot/Item/index.html#type-t">IR.Annot.Item.t</a> <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</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>