You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
(*
|
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
open! IStd
|
|
|
|
(** Define the signature of a method consisting of its name, its arguments, return type, location
|
|
and whether its an instance method. *)
|
|
|
|
type param_type =
|
|
{name: Mangled.t; typ: Typ.t; is_pointer_to_const: bool; is_value: bool; annot: Annot.Item.t}
|
|
|
|
type t =
|
|
{ name: Typ.Procname.t
|
|
; access: Clang_ast_t.access_specifier
|
|
; class_param: param_type option
|
|
; params: param_type list
|
|
; ret_type: Typ.t * Annot.Item.t
|
|
; has_added_return_param: bool
|
|
; attributes: Clang_ast_t.attribute list
|
|
; loc: Clang_ast_t.source_range
|
|
; method_kind: ProcAttributes.clang_method_kind
|
|
; is_cpp_virtual: bool
|
|
; is_cpp_nothrow: bool
|
|
; is_variadic: bool
|
|
; pointer_to_parent: Clang_ast_t.pointer option
|
|
; pointer_to_property_opt: Clang_ast_t.pointer option
|
|
; (* If set then method is a getter/setter *)
|
|
return_param_typ: Typ.t option }
|
|
|
|
val is_getter : t -> bool
|
|
|
|
val is_setter : t -> bool
|
|
|
|
val mk :
|
|
Typ.Procname.t -> param_type option -> param_type list -> Typ.t * Annot.Item.t
|
|
-> ?has_added_return_param:bool -> Clang_ast_t.attribute list -> Clang_ast_t.source_range
|
|
-> ProcAttributes.clang_method_kind -> ?is_cpp_virtual:bool -> ?is_cpp_nothrow:bool
|
|
-> ?is_variadic:bool -> Clang_ast_t.pointer option -> Clang_ast_t.pointer option -> Typ.t option
|
|
-> Clang_ast_t.access_specifier -> t
|
|
|
|
val pp : Format.formatter -> t -> unit
|
|
|
|
val mk_param_type :
|
|
?is_value:bool -> ?is_pointer_to_const:bool -> ?annot:Annot.Item.t -> Mangled.t -> Typ.t
|
|
-> param_type
|