Optimize generate_key_stmt/decl

Reviewed By: ddino

Differential Revision: D9323065

fbshipit-source-id: df156a7d5
master
Mehdi Bouaziz 6 years ago committed by Facebook Github Bot
parent 515d9f6769
commit 90fd5ec4a4

@ -297,23 +297,20 @@ let get_tag ast_item =
(* Generates a key for a statement based on its sub-statements and the statement tag. *)
let rec generate_key_stmt stmt =
let tag_str = string_of_int (get_tag stmt) in
let _, stmts = Clang_ast_proj.get_stmt_tuple stmt in
let tags = List.map ~f:generate_key_stmt stmts in
let generate_key_stmt stmt =
let buffer = Buffer.create 16 in
let tags = tag_str :: tags in
List.iter ~f:(fun tag -> Buffer.add_string buffer tag) tags ;
Buffer.contents buffer
let rec add_stmt stmt =
Buffer.add_string buffer (string_of_int (get_tag stmt)) ;
let _, stmts = Clang_ast_proj.get_stmt_tuple stmt in
List.iter ~f:add_stmt stmts
in
add_stmt stmt ; Buffer.contents buffer
(* Generates a key for a declaration based on its name and the declaration tag. *)
let generate_key_decl decl =
let buffer = Buffer.create 16 in
let name = full_name_of_decl_opt (Some decl) in
Buffer.add_string buffer (string_of_int (get_tag decl)) ;
Buffer.add_string buffer (QualifiedCppName.to_qual_string name) ;
Buffer.contents buffer
Format.sprintf "%d%s" (get_tag decl) (QualifiedCppName.to_qual_string name)
let rec get_super_if decl =

Loading…
Cancel
Save