Module InferModules.PatternMatch
val get_this_type : InferIR.ProcAttributes.t -> InferIR.Typ.t optionGet the this type of a procedure
val get_type_name : InferIR.Typ.t -> stringGet the name of a type
val get_vararg_type_names : InferIR.Tenv.t -> InferIR.Procdesc.Node.t -> InferIR.Pvar.t -> string listGet the type names of a variable argument
val method_is_initializer : InferIR.Tenv.t -> InferIR.ProcAttributes.t -> boolCheck if the method is one of the known initializer methods.
val is_getter : InferIR.Typ.Procname.Java.t -> boolIs this a getter proc name?
val is_subtype : InferIR.Tenv.t -> InferIR.Typ.Name.t -> InferIR.Typ.Name.t -> boolIs the type a transitive subtype of the typename?
val is_subtype_of_str : InferIR.Tenv.t -> InferIR.Typ.Name.t -> string -> boolResolve
typ_strintenv, then checktyp<:typ_str
val implements_arrays : InferIR.Tenv.t -> string -> boolCheck whether class implements Java's Arrays
val implements_iterator : InferIR.Tenv.t -> string -> boolCheck whether class implements Java's Iterator
val implements_collection : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Collection
val implements_collections : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Collections
val implements_pseudo_collection : InferIR.Tenv.t -> string -> boolCheck whether class implements a pseudo Collection with support for get() and size() methods
val implements_enumeration : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Enumeration
val implements_jackson : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a class from Jackson
val implements_org_json : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a class from Json
val implements_inject : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a Javax Inject
val implements_io : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a Java IO
val implements_map : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Map
val implements_set : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Set
val implements_map_entry : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Map$Entry
val implements_queue : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's Queue
val implements_lang : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's lang
val implements_list : InferIR.Tenv.t -> string -> boolCheck whether class implements a Java's list
val implements_google : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a class of Google
val implements_android : string -> InferIR.Tenv.t -> string -> boolCheck whether class implements a class of Android
val supertype_exists : InferIR.Tenv.t -> (InferIR.Typ.Name.t -> InferIR.Typ.Struct.t -> bool) -> InferIR.Typ.Name.t -> boolHolds iff the predicate holds on a supertype of the named type, including the type itself
val supertype_find_map_opt : InferIR.Tenv.t -> (InferIR.Typ.Name.t -> 'a option) -> InferIR.Typ.Name.t -> 'a optionReturn the first non-None result found when applying the given function to supertypes of the named type, including the type itself
val java_get_vararg_values : InferIR.Procdesc.Node.t -> InferIR.Pvar.t -> Idenv.t -> InferIR.Exp.t listGet the values of a vararg parameter given the pvar used to assign the elements.
val proc_calls : (InferIR.Typ.Procname.t -> InferIR.ProcAttributes.t option) -> InferIR.Procdesc.t -> (InferIR.Typ.Procname.t -> InferIR.ProcAttributes.t -> bool) -> (InferIR.Typ.Procname.t * InferIR.ProcAttributes.t) listReturn the callees that satisfy
filter.
val override_find : ?check_current_type:bool -> (InferIR.Typ.Procname.t -> bool) -> InferIR.Tenv.t -> InferIR.Typ.Procname.t -> InferIR.Typ.Procname.t optionReturn a method which overrides
procnameand satisfiesf(includingprocnameitself whencheck_current_typeis true, which it is by default).
val override_exists : ?check_current_type:bool -> (InferIR.Typ.Procname.t -> bool) -> InferIR.Tenv.t -> InferIR.Typ.Procname.t -> boolReturn true if applying the given predicate to an override of
procname(includingprocnameitself whencheck_current_typeis true, which it is by default) returns true.
val override_iter : (InferIR.Typ.Procname.t -> unit) -> InferIR.Tenv.t -> InferIR.Typ.Procname.t -> unitApply the given predicate to procname and each override of
procname. For the moment, this only works for Java
val lookup_attributes : InferIR.Tenv.t -> InferIR.Typ.Procname.t -> InferIR.ProcAttributes.t optionval type_get_annotation : InferIR.Tenv.t -> InferIR.Typ.t -> InferIR.Annot.Item.t optionval type_get_class_name : InferIR.Typ.t -> InferIR.Typ.Name.t optionGet the class name of the type
val type_is_class : InferIR.Typ.t -> boolIs the type a class type
val type_is_object : InferIR.Typ.t -> boolIs the type java.lang.Object
val get_fields_nullified : InferIR.Procdesc.t -> InferIR.Typ.Fieldname.Set.treturn the set of instance fields that are assigned to a null literal in
procdesc
val is_throwable : InferIR.Tenv.t -> InferIR.Typ.Name.t -> boolis_throwable tenv class_namechecks if class_name is of type java.lang.Throwable
val is_runtime_exception : InferIR.Tenv.t -> InferIR.Typ.Name.t -> boolis_runtime_exception tenv class_namechecks if classname is of type java.lang.RuntimeException
val check_class_attributes : (InferIR.Annot.Item.t -> bool) -> InferIR.Tenv.t -> InferIR.Typ.Procname.t -> booltests whether any class attributes (e.g., @ThreadSafe) pass check of first argument, including supertypes
val check_current_class_attributes : (InferIR.Annot.Item.t -> bool) -> InferIR.Tenv.t -> InferIR.Typ.Procname.t -> booltests whether any class attributes (e.g., @ThreadSafe) pass check of first argument, for current class only
val find_superclasses_with_attributes : (InferIR.Annot.Item.t -> bool) -> InferIR.Tenv.t -> InferIR.Typ.Name.t -> InferIR.Typ.Name.t listfind superclasss with attributes (e.g., @ThreadSafe), including current class