IR.ProcnameModule for Procedure Names.
Level of verbosity of some to_string functions.
module CSharp : sig ... endType of csharp procedure names.
module Java : sig ... endType of java procedure names.
module Parameter : sig ... endmodule ObjC_Cpp : sig ... endmodule C : sig ... endmodule Block : sig ... endType of Objective C block names.
module Erlang : sig ... endmodule Hack : sig ... endmodule Python : sig ... endinclude Ppx_compare_lib.Comparable.S with type t := tval yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.tSimilar to compare, but compares only names, except parameter types and template arguments.
val get_class_type_name : t -> Typ.Name.t optionval get_class_name : t -> string optionval python_classify : t -> Python.kind optionClassify a Python name into a Python.kind
Turns a Python **toplevel** name into a valid initializer. E.g. it is used to turn a statement like x = C(42) into C.__init__(x, 42)
val get_parameters : t -> Parameter.t listval replace_parameters : Parameter.t list -> t -> tval parameter_of_name : t -> Typ.Name.t -> Parameter.tval is_cpp_assignment_operator : t -> boolval is_destructor : t -> boolval is_java_static_method : t -> boolval is_java_instance_method : t -> boolval is_java_access_method : t -> boolval is_java_class_initializer : t -> boolval is_java_anonymous_inner_class_method : t -> boolval is_java_autogen_method : t -> boolval is_objc_method : t -> boolIncludes specialized objective-c methods
val is_objc_instance_method : t -> boolIncludes specialized objective-c instance methods
val is_objc_class_method : t -> boolIncludes specialized objective-c class methods
val is_objc_nsobject_class : t -> boolval get_objc_class_name : t -> string optionval is_std_move : t -> boolCheck if it is C++ shared pointer observer, e.g. std::shared_ptr::operator*
include module type of struct include Comparable endval comparator : (t, comparator_witness) Base__Comparator.comparatormodule LRUHash : IStdlib.LRUHashtbl.S with type key = tmodule HashSet : IStdlib.HashSet.S with type elt = tmodule Map : IStdlib.PrettyPrintable.PPMap with type key = tMaps from proc names.
module Set : IStdlib.PrettyPrintable.PPSet with type elt = tSets of proc names.
module SQLite : IBase.SqliteUtils.Data with type t = tmodule SQLiteList : IBase.SqliteUtils.Data with type t = t listmodule UnitCache : sig ... endOne-sized cache for one procedure at a time. Returns getter and setter.
val make_java :
class_name:Typ.Name.t ->
return_type:Typ.t option ->
method_name:string ->
parameters:Typ.t list ->
kind:Java.kind ->
tCreate a Java procedure name.
val make_csharp :
class_name:Typ.Name.t ->
return_type:Typ.t option ->
method_name:string ->
parameters:Typ.t list ->
kind:CSharp.kind ->
tCreate a CSharp procedure name.
val make_erlang : module_name:string -> function_name:string -> arity:int -> tCreate an Erlang procedure name.
val make_hack :
class_name:HackClassName.t option ->
function_name:string ->
arity:int option ->
tCreate a Hack procedure name.
val make_objc_dealloc : Typ.Name.t -> tCreate a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"
val make_objc_copy : Typ.Name.t -> tCreate a Objective-C copy name.
val make_objc_copyWithZone : is_mutable:bool -> Typ.Name.t -> tCreate an Objective-C method for copyWithZone: or mutableCopyWithZone: according to is_mutable.
val make_python :
class_name:PythonClassName.t option ->
function_name:string ->
arity:int option ->
tCreate a Python procedure name.
val empty_block : tEmpty block name.
val get_language : t -> IBase.Language.tReturn the language of the procedure.
val get_method : t -> stringReturn the method/function of a procname.
val is_objc_block : t -> boolReturn whether the procname is a block procname.
val is_cpp_lambda : t -> boolReturn whether the procname is a cpp lambda procname.
val is_objc_dealloc : t -> boolReturn whether the dealloc method of an Objective-C class.
val is_objc_init : t -> boolReturn whether the init method of an Objective-C class.
val is_c_method : t -> boolReturn true this is an Objective-C/C++ method name.
val is_clang : t -> boolReturn true this is an Objective-C/C++ method name or a C function.
val is_constructor : t -> boolCheck if this is a constructor.
val is_csharp : t -> boolCheck if this is a CSharp procedure name.
val is_hack : t -> boolCheck if this is a Hack procedure name.
val is_java : t -> boolCheck if this is a Java procedure name.
val is_python : t -> boolCheck if this is a Python procedure name.
val is_infer_undefined : t -> boolCheck if this is a special Infer undefined procedure.
val is_static : t -> bool optionCheck if a procedure is a static class method or not. If the procedure is not a class method or is unknown to be static, it returns None. For now, this checking does not work on C++ methods.
val get_global_name_of_initializer : t -> string optionReturn the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.
val pp_without_templates : Stdlib.Format.formatter -> t -> unitPretty print a c++ proc name for the user to see.
val pp : Stdlib.Format.formatter -> t -> unitPretty print a proc name for the user to see.
val pp_verbose : Stdlib.Format.formatter -> t -> unitPretty print a proc name for the user to see with verbosity parameter.
val to_string : ?verbosity:detail_level -> t -> stringConvert a proc name into a string for the user to see.
val to_string_verbose : t -> stringConvert a proc name into a string for the user to see with verbosity parameter.
val describe : Stdlib.Format.formatter -> t -> unitto use in user messages
val replace_class : t -> ?arity_incr:int -> Typ.Name.t -> tReplace the class name component of a procedure name. In case of Java, replace package and class name.
val is_method_in_objc_protocol : t -> boolval pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unitPretty print a proc name as an easy string for the user to see in an IDE.
val to_simplified_string : ?withclass:bool -> t -> stringConvert a proc name into an easy string for the user to see in an IDE.
val from_string_c_fun : string -> tConvert a string to a c function name.
Replace "$[0-9]+" index into "$_" in Java proc name.
val hashable_name : t -> stringConvert the procedure name in a format suitable for computing the bug hash.
val pp_unique_id : F.formatter -> t -> unitPrint a proc name as a unique identifier.
val to_unique_id : t -> stringConvert a proc name into a unique identifier.
val to_short_unique_name : t -> stringConvert a proc name into a unique identfier guaranteed to be short (less than 50 characters)
val to_filename : t -> stringConvert a proc name to a filename.
val get_qualifiers : t -> QualifiedCppName.tget qualifiers of C/objc/C++ method/function
return a Hack procname with decremented arity. Return None if input has no arity or 0 arity
val get_hack_arity : t -> int optionget the arity of a Hack procname
val get_hack_static_init : is_trait:bool -> HackClassName.t -> tget the sinit procname in Hack
val pp_name_only : F.formatter -> t -> unitPrint name of procedure with at most one-level path. For example,
val pp_fullname_only : F.formatter -> t -> unitLike pp_name_only, but include package name for Java.
val is_c : t -> boolval is_lambda : t -> boolval is_lambda_or_block : t -> boolval patterns_match : IStdlib.IStd.Str.regexp list -> t -> boolTest whether a proc name matches to one of the regular expressions.
val is_erlang_unsupported : t -> boolval is_erlang : t -> boolval erlang_call_unqualified : arity:int -> tA special infer-erlang procname that represents a syntactic erlang (unqualified) function call. arity is the arity of the erlang function. First parameter of this procedure is expecteed to be the erlang function name, and the remaining parameters are the erlang parameters (given one-by-one and not as an erlang list).
val erlang_call_qualified : arity:int -> tSame as erlang_call_unqualified but is expected to have an erlang module name as the first parameter, and the function name as second. arity is (still) the erlang arity of the function.
val is_erlang_call_unqualified : t -> boolval is_erlang_call_qualified : t -> boolval is_hack_builtins : t -> boolval is_hack_sinit : t -> boolval has_hack_classname : t -> boolval is_hack_async_name : t -> boolval is_hack_construct : t -> bool