Module InferModules__Annotations
Annotations.
val any_thread : string
val auto_cleanup : string
val expensive : string
val inject_prop : string
val no_allocation : string
val nullable : string
val nonnull : string
val performance_critical : string
val present : string
val prop : string
val for_non_ui_thread : string
val for_ui_thread : string
val guarded_by : string
val suppress_lint : string
val thread_confined : string
val thread_safe : string
val mainthread : string
val ui_thread : string
val worker_thread : string
val visibleForTesting : string
val generated_graphql : string
val get_annot_ending : InferIR.Annot.t -> string
get the '.'-last component of an annotation
val annot_ends_with : InferIR.Annot.t -> string -> bool
annot_ends_with annot ann_name
returns true if the class name ofannot
, without the package, is equal toann_name
val ia_ends_with : InferIR.Annot.Item.t -> string -> bool
Check if there is an annotation in
ia
which ends with the given name
val ia_has_annotation_with : InferIR.Annot.Item.t -> (InferIR.Annot.t -> bool) -> bool
val ia_is_false_on_null : InferIR.Annot.Item.t -> bool
val ia_is_initializer : InferIR.Annot.Item.t -> bool
val ia_is_cleanup : InferIR.Annot.Item.t -> bool
val ia_is_field_injector_readonly : InferIR.Annot.Item.t -> bool
Annotations for readonly injectors. The injector framework initializes the field but does not write null into it.
val ia_is_field_injector_readwrite : InferIR.Annot.Item.t -> bool
Annotations for read-write injectors. The injector framework initializes the field and can write null into it.
val ia_is_mutable : InferIR.Annot.Item.t -> bool
val ia_is_nonnull : InferIR.Annot.Item.t -> bool
val ia_is_nullable : InferIR.Annot.Item.t -> bool
val ia_is_present : InferIR.Annot.Item.t -> bool
val ia_is_true_on_null : InferIR.Annot.Item.t -> bool
val ia_is_verify : InferIR.Annot.Item.t -> bool
val ia_is_expensive : InferIR.Annot.Item.t -> bool
val ia_is_functional : InferIR.Annot.Item.t -> bool
val ia_is_propagates_nullable : InferIR.Annot.Item.t -> bool
val ia_is_ignore_allocations : InferIR.Annot.Item.t -> bool
val ia_is_inject : InferIR.Annot.Item.t -> bool
val ia_is_suppress_lint : InferIR.Annot.Item.t -> bool
val ia_is_not_thread_safe : InferIR.Annot.Item.t -> bool
val ia_is_nonblocking : InferIR.Annot.Item.t -> bool
val ia_is_returns_ownership : InferIR.Annot.Item.t -> bool
val ia_is_synchronized_collection : InferIR.Annot.Item.t -> bool
val ia_is_thread_safe : InferIR.Annot.Item.t -> bool
val ia_is_thread_confined : InferIR.Annot.Item.t -> bool
val ia_is_thrift_service : InferIR.Annot.Item.t -> bool
val ia_is_volatile : InferIR.Annot.Item.t -> bool
val ia_is_worker_thread : InferIR.Annot.Item.t -> bool
val pdesc_get_return_annot : InferIR.Procdesc.t -> InferIR.Annot.Item.t
get the list of annotations on the return value of
pdesc
val pdesc_has_return_annot : InferIR.Procdesc.t -> (InferIR.Annot.Item.t -> bool) -> bool
return true if the given predicate evaluates to true on the annotation of
pdesc
's return value
val pname_has_return_annot : InferIR.Typ.Procname.t -> attrs_of_pname:(InferIR.Typ.Procname.t -> InferIR.ProcAttributes.t option) -> (InferIR.Annot.Item.t -> bool) -> bool
return true if the given predicate evaluates to true on the annotation of
pname
's return value. the functionattrs_of_pname
should resolve the proc attributes ofpname
. Specs.proc_resolve_attributes is a good choice for this resolution function.
val pdesc_return_annot_ends_with : InferIR.Procdesc.t -> string -> bool
return true if
pdesc
's return value is annotated with a value ending with the given string
val ma_has_annotation_with : InferIR.Annot.Method.t -> (InferIR.Annot.t -> bool) -> bool
val field_has_annot : InferIR.Typ.Fieldname.t -> InferIR.Typ.Struct.t -> (InferIR.Annot.Item.t -> bool) -> bool
val struct_typ_has_annot : InferIR.Typ.Struct.t -> (InferIR.Annot.Item.t -> bool) -> bool
return true if the given predicate evaluates to true on some annotation of
struct_typ