Module 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 = {
  1. annot : IR.Annot.Item.t;
  2. is_no_escape_block_arg : bool;
  3. is_pointer_to_const : bool;
  4. is_reference : bool;
  5. name : IR.Mangled.t;
  6. typ : IR.Typ.t;
}
type t = {
  1. name : IR.Procname.t;
  2. access : ATDGenerated.Clang_ast_t.access_specifier;
  3. class_param : param_type option;
  4. params : param_type list;
  5. ret_type : IR.Typ.t * IR.Annot.Item.t;
  6. has_added_return_param : bool;
  7. is_ret_type_pod : bool;
  8. is_ret_constexpr : bool;
  9. attributes : ATDGenerated.Clang_ast_t.attribute list;
  10. loc : ATDGenerated.Clang_ast_t.source_range;
  11. method_kind : IR.ClangMethodKind.t;
  12. is_cpp_const_member_fun : bool;
  13. is_cpp_virtual : bool;
  14. is_cpp_copy_assignment : bool;
  15. is_cpp_copy_ctor : bool;
  16. is_cpp_move_ctor : bool;
  17. is_static_ctor : bool;
  18. is_cpp_deleted : bool;
  19. is_cpp_implicit : bool;
  20. block_as_arg_attributes : IR.ProcAttributes.block_as_arg_attributes option;
  21. is_no_return : bool;
  22. is_variadic : bool;
  23. pointer_to_parent : ATDGenerated.Clang_ast_t.pointer option;
  24. pointer_to_property_opt : ATDGenerated.Clang_ast_t.pointer option;
  25. 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_static_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