Absint.PatternMatch
Module for Pattern matching.
val get_this_type_nonstatic_methods_only :
IR.ProcAttributes.t ->
IR.Typ.t option
Get the `this` type of a procedure. Should not be called on non-static methods, otherwise it can return a wrong type
val get_type_name : IR.Typ.t -> string
Get the name of a type
val get_vararg_type_names :
IR.Tenv.t ->
IR.Procdesc.Node.t ->
IR.Pvar.t ->
string list
Get the type names of a variable argument
val is_subtype : IR.Tenv.t -> IR.Typ.Name.t -> IR.Typ.Name.t -> bool
Is the type a transitive subtype of the typename?
val is_subtype_of_str : IR.Tenv.t -> IR.Typ.Name.t -> string -> bool
Resolve typ_str
in tenv
, then check typ
<: typ_str
module CSharp : sig ... end
module Java : sig ... end
val supertype_exists :
IR.Tenv.t ->
(IR.Typ.Name.t -> IR.Struct.t -> bool) ->
IR.Typ.Name.t ->
bool
Holds iff the predicate holds on a supertype of the named type, including the type itself
val supertype_find_map_opt :
IR.Tenv.t ->
(IR.Typ.Name.t -> 'a option) ->
IR.Typ.Name.t ->
'a option
Return the first non-None result found when applying the given function to supertypes of the named type, including the type itself
val override_exists :
?check_current_type:bool ->
(IR.Procname.t -> bool) ->
IR.Tenv.t ->
IR.Procname.t ->
bool
Return true if applying the given predicate to an override of procname
(including procname
itself when check_current_type
is true, which it is by default) returns true.
val override_find :
?check_current_type:bool ->
(IR.Procname.t -> bool) ->
IR.Tenv.t ->
IR.Procname.t ->
IR.Procname.t option
Check if the given predicate to an override of procname
(including procname
itself when check_current_type
is true, which it is by default) returns true. If yes, return the name of the override.
val override_iter :
(IR.Procname.t -> unit) ->
IR.Tenv.t ->
IR.Procname.t ->
unit
Apply the given predicate to procname and each override of procname
. For the moment, this only works for Java
val type_name_get_annotation :
IR.Tenv.t ->
IR.Typ.name ->
IR.Annot.Item.t option
val type_get_annotation : IR.Tenv.t -> IR.Typ.t -> IR.Annot.Item.t option
val type_is_class : IR.Typ.t -> bool
Is the type a class type
val get_fields_nullified : IR.Procdesc.t -> IR.Fieldname.Set.t
return the set of instance fields that are assigned to a null literal in procdesc
val has_same_signature :
IR.Procname.t ->
(IR.Procname.t -> bool) IStdlib.IStd.Staged.t
For a given procname
checks if the method has the same method name, number, order and types of parameters.)
module ObjectiveC : sig ... end
val is_entry_point : IR.Procname.t -> bool
Does the function name correspond to a known entry point? Currently only matches "main"