@ -319,7 +319,8 @@ let module Procname = {
[ @@ deriving compare ] ;
[ @@ deriving compare ] ;
/* * Type of c procedure names. */
/* * Type of c procedure names. */
type c = ( string , option string , template_spec_info ) [ @@ deriving compare ] ;
type c = { name : string , mangled : option string , template_args : template_spec_info }
[ @@ deriving compare ] ;
type objc_cpp_method_kind =
type objc_cpp_method_kind =
| CPPMethod ( option string ) /* * with mangling */
| CPPMethod ( option string ) /* * with mangling */
| CPPConstructor ( option string , bool ) /* * with mangling + is it constexpr? */
| CPPConstructor ( option string , bool ) /* * with mangling + is it constexpr? */
@ -403,12 +404,12 @@ let module Procname = {
| None = > ( None , package_classname )
| None = > ( None , package_classname )
} ;
} ;
let split_typename typename = > split_classname ( Typename . name typename ) ;
let split_typename typename = > split_classname ( Typename . name typename ) ;
let from_string_c_fun ( s : string ) = > C ( s , None , NoTemplate ) ;
let c ( name : string ) ( mangled : string ) ( template_args : template_spec_info ) = > {
let c ( plain : string ) ( mangled : string ) ( template_args : template_spec_info ) = > (
name ,
plain ,
mangled : Some mangled ,
Some mangled ,
template_args
template_args
) ;
} ;
let from_string_c_fun ( name : string ) = > C { name , mangled : None , template_args : NoTemplate } ;
let java class_name return_type method_name parameters kind = > {
let java class_name return_type method_name parameters kind = > {
class_name ,
class_name ,
return_type ,
return_type ,
@ -487,7 +488,7 @@ let module Procname = {
let get_method =
let get_method =
fun
fun
| ObjC_Cpp name = > name . method_name
| ObjC_Cpp name = > name . method_name
| C (name , _ , _ ) = > name
| C {name } = > name
| Block name = > name
| Block name = > name
| Java j = > j . method_name
| Java j = > j . method_name
| Linters_dummy_method = > " Linters_dummy_method " ;
| Linters_dummy_method = > " Linters_dummy_method " ;
@ -690,7 +691,7 @@ let module Procname = {
} ;
} ;
let get_global_name_of_initializer =
let get_global_name_of_initializer =
fun
fun
| C (name , _ , _ ) when String . is_prefix prefix :: Config . clang_initializer_prefix name = > {
| C {name } when String . is_prefix prefix :: Config . clang_initializer_prefix name = > {
let prefix_len = String . length Config . clang_initializer_prefix ;
let prefix_len = String . length Config . clang_initializer_prefix ;
Some ( String . sub name pos :: prefix_len len :: ( String . length name - prefix_len ) )
Some ( String . sub name pos :: prefix_len len :: ( String . length name - prefix_len ) )
}
}
@ -744,7 +745,7 @@ let module Procname = {
let to_unique_id pn = >
let to_unique_id pn = >
switch pn {
switch pn {
| Java j = > java_to_string j Verbose
| Java j = > java_to_string j Verbose
| C (c1 , c2 , _ ) = > to_readable_string ( c1 , c2 ) true
| C {name , mangled } = > to_readable_string ( name , mangled ) true
| ObjC_Cpp osig = > c_method_to_string osig Verbose
| ObjC_Cpp osig = > c_method_to_string osig Verbose
| Block name = > name
| Block name = > name
| Linters_dummy_method = > " Linters_dummy_method "
| Linters_dummy_method = > " Linters_dummy_method "
@ -754,7 +755,7 @@ let module Procname = {
let to_string p = >
let to_string p = >
switch p {
switch p {
| Java j = > java_to_string j Non_verbose
| Java j = > java_to_string j Non_verbose
| C (c1 , c2 , _ ) = > to_readable_string ( c1 , c2 ) false
| C {name , mangled } = > to_readable_string ( name , mangled ) false
| ObjC_Cpp osig = > c_method_to_string osig Non_verbose
| ObjC_Cpp osig = > c_method_to_string osig Non_verbose
| Block name = > name
| Block name = > name
| Linters_dummy_method = > to_unique_id p
| Linters_dummy_method = > to_unique_id p
@ -764,7 +765,7 @@ let module Procname = {
let to_simplified_string withclass :: withclass = false p = >
let to_simplified_string withclass :: withclass = false p = >
switch p {
switch p {
| Java j = > java_to_string withclass :: withclass j Simple
| Java j = > java_to_string withclass :: withclass j Simple
| C (c1 , c2 , _ ) = > to_readable_string ( c1 , c2 ) false ^ " () "
| C {name , mangled } = > to_readable_string ( name , mangled ) false ^ " () "
| ObjC_Cpp osig = > c_method_to_string osig Simple
| ObjC_Cpp osig = > c_method_to_string osig Simple
| Block _ = > " block "
| Block _ = > " block "
| Linters_dummy_method = > to_unique_id p
| Linters_dummy_method = > to_unique_id p
@ -793,7 +794,7 @@ let module Procname = {
let pp_set fmt set = > Set . iter ( fun pname = > F . fprintf fmt " %a " pp pname ) set ;
let pp_set fmt set = > Set . iter ( fun pname = > F . fprintf fmt " %a " pp pname ) set ;
let get_qualifiers pname = >
let get_qualifiers pname = >
switch pname {
switch pname {
| C c = > fst3 c | > QualifiedCppName . qualifiers_of_qual_name
| C { name } = > QualifiedCppName . qualifiers_of_qual_name name
| ObjC_Cpp objc_cpp = >
| ObjC_Cpp objc_cpp = >
List . append
List . append
( QualifiedCppName . qualifiers_of_qual_name ( Typename . name objc_cpp . class_name ) )
( QualifiedCppName . qualifiers_of_qual_name ( Typename . name objc_cpp . class_name ) )
@ -807,7 +808,8 @@ let module Procname = {
let get_qual_name_str pname = > get_qualifiers pname | > List . rev | > String . concat sep :: " # " ;
let get_qual_name_str pname = > get_qualifiers pname | > List . rev | > String . concat sep :: " # " ;
let proc_id =
let proc_id =
switch pname {
switch pname {
| C ( _ , c2 , _ ) = > [ get_qual_name_str pname , ... Option . to_list c2 ] | > String . concat sep :: " # "
| C { mangled } = >
[ get_qual_name_str pname , ... Option . to_list mangled ] | > String . concat sep :: " # "
| ObjC_Cpp objc_cpp = >
| ObjC_Cpp objc_cpp = >
get_qual_name_str pname ^ " # " ^ c_method_kind_verbose_str objc_cpp . kind
get_qual_name_str pname ^ " # " ^ c_method_kind_verbose_str objc_cpp . kind
| _ = > to_unique_id pname
| _ = > to_unique_id pname