Module IR.Procname

module F = Stdlib.Format
module Java : sig ... end

Type of java procedure names.

module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t =
| Java of Java.t
| C of C.t
| Linters_dummy_method
| Block of Block.t
| ObjC_Cpp of ObjC_Cpp.t
| WithBlockParameters of t * Block.block_name list

Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();} bar() {foo(my_block)} is executed as foo_my_block() {my_block(); } where foo_my_block is created with WithBlockParameters (foo, my_block)

val compare : t -> t -> int
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t

Hash tables with proc names as keys.

module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t

Maps from proc names.

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t

Sets of proc names.

module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end

One-sized cache for one procedure at a time. Returns getter and setter.

val make_java : class_name:Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t

Create a Java procedure name.

val empty_block : t

Empty block name.

val get_language : t -> IBase.Language.t

Return the language of the procedure.

val get_method : t -> string

Return the method/function of a procname.

val is_objc_block : t -> bool

Return whether the procname is a block procname.

val is_c_method : t -> bool

Return true this is an Objective-C/C++ method name.

val is_clang : t -> bool

Return true if this is a C, C++, or Objective-C procedure name

val is_constructor : t -> bool

Check if this is a constructor.

val is_java : t -> bool

Check if this is a Java procedure name.

val with_block_parameters : t -> Block.block_name list -> t

Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).

val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool

Check if this is a special Infer undefined procedure.

val get_global_name_of_initializer : t -> string option

Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print a proc name for the user to see.

val to_string : t -> string

Convert a proc name into a string for the user to see.

val describe : Stdlib.Format.formatter -> t -> unit

to use in user messages

val replace_class : t -> Typ.Name.t -> t

Replace the class name component of a procedure name. In case of Java, replace package and class name.

val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?⁠withclass:bool -> F.formatter -> t -> unit

Pretty print a proc name as an easy string for the user to see in an IDE.

val to_simplified_string : ?⁠withclass:bool -> t -> string

Convert a proc name into an easy string for the user to see in an IDE.

val from_string_c_fun : string -> t

Convert a string to a c function name.

val hashable_name : t -> string

Convert the procedure name in a format suitable for computing the bug hash.

val pp_unique_id : F.formatter -> t -> unit

Print a proc name as a unique identifier.

val to_unique_id : t -> string

Convert a proc name into a unique identifier.

val to_filename : t -> string

Convert a proc name to a filename.

val get_qualifiers : t -> QualifiedCppName.t

get qualifiers of C/objc/C++ method/function