ClangFrontend.CMethodSignature
Define the signature of a method consisting of its name, its arguments, return type, location and whether its an instance method.
type param_type = {
annot : IR.Annot.Item.t;
is_no_escape_block_arg : bool;
is_pointer_to_const : bool;
is_reference : bool;
name : IR.Mangled.t;
typ : IR.Typ.t;
}
type t = {
name : IR.Procname.t;
access : ATDGenerated.Clang_ast_t.access_specifier;
class_param : param_type option;
params : param_type list;
ret_type : IR.Typ.t * IR.Annot.Item.t;
has_added_return_param : bool;
is_ret_type_pod : bool;
is_ret_constexpr : bool;
attributes : ATDGenerated.Clang_ast_t.attribute list;
loc : ATDGenerated.Clang_ast_t.source_range;
method_kind : IR.ClangMethodKind.t;
is_cpp_const_member_fun : bool;
is_cpp_virtual : bool;
is_cpp_copy_assignment : bool;
is_cpp_copy_ctor : bool;
is_cpp_move_ctor : bool;
is_cpp_deleted : bool;
is_cpp_implicit : bool;
block_as_arg_attributes : IR.ProcAttributes.block_as_arg_attributes option;
is_no_return : bool;
is_variadic : bool;
pointer_to_parent : ATDGenerated.Clang_ast_t.pointer option;
pointer_to_property_opt : ATDGenerated.Clang_ast_t.pointer option;
return_param_typ : IR.Typ.t option;
}
val is_getter : t -> bool
val is_setter : t -> bool
val mk :
IR.Procname.t ->
param_type option ->
param_type list ->
(IR.Typ.t * IR.Annot.Item.t) ->
?has_added_return_param:bool ->
?is_ret_type_pod:bool ->
is_ret_constexpr:bool ->
ATDGenerated.Clang_ast_t.attribute list ->
ATDGenerated.Clang_ast_t.source_range ->
IR.ClangMethodKind.t ->
?is_cpp_const_member_fun:bool ->
?is_cpp_virtual:bool ->
?is_cpp_copy_assignment:bool ->
?is_cpp_copy_ctor:bool ->
?is_cpp_move_ctor:bool ->
?is_cpp_deleted:bool ->
?is_cpp_implicit:bool ->
?block_as_arg_attributes:IR.ProcAttributes.block_as_arg_attributes option ->
?is_no_return:bool ->
?is_variadic:bool ->
ATDGenerated.Clang_ast_t.pointer option ->
ATDGenerated.Clang_ast_t.pointer option ->
IR.Typ.t option ->
ATDGenerated.Clang_ast_t.access_specifier ->
t
val pp : Stdlib.Format.formatter -> t -> unit
val mk_param_type :
?is_pointer_to_const:bool ->
?is_reference:bool ->
?annot:IR.Annot.Item.t ->
?is_no_escape_block_arg:bool ->
IR.Mangled.t ->
IR.Typ.t ->
param_type