Callbacks, cleanup 2: some lazyness

Summary: Only RacerD uses the Cluster callbacks but we used to compute a lot of things anyway.

Reviewed By: sblackshear

Differential Revision: D7516279

fbshipit-source-id: 22f2b86
master
Mehdi Bouaziz 7 years ago committed by Facebook Github Bot
parent be8ac23557
commit 44cf69791a

@ -46,8 +46,11 @@ let register_cluster_callback language (callback: cluster_callback_t) =
(** Collect what we need to know about a procedure for the analysis. *) (** Collect what we need to know about a procedure for the analysis. *)
let get_procedure_definition exe_env proc_name = let get_procedure_definition exe_env proc_name =
let tenv = Exe_env.get_tenv exe_env proc_name in Option.map
Option.map ~f:(fun proc_desc -> (tenv, proc_desc)) (Exe_env.get_proc_desc exe_env proc_name) ~f:(fun proc_desc ->
let tenv = Exe_env.get_tenv exe_env proc_name in
(tenv, proc_desc) )
(Exe_env.get_proc_desc exe_env proc_name)
let get_language proc_name = let get_language proc_name =
@ -78,18 +81,19 @@ let iterate_procedure_callbacks get_proc_desc exe_env summary proc_desc =
(** Invoke all registered cluster callbacks on a cluster of procedures. *) (** Invoke all registered cluster callbacks on a cluster of procedures. *)
let iterate_cluster_callbacks all_procs exe_env get_proc_desc = let iterate_cluster_callbacks all_procs exe_env get_proc_desc =
let procedures = List.filter_map ~f:(get_procedure_definition exe_env) all_procs in if !cluster_callbacks <> [] then
let environment = {procedures; get_proc_desc} in let procedures = List.filter_map ~f:(get_procedure_definition exe_env) all_procs in
let language_matches language = let environment = {procedures; get_proc_desc} in
match procedures with let language_matches language =
| (_, pdesc) :: _ -> match procedures with
Language.equal language (get_language (Procdesc.get_proc_name pdesc)) | (_, pdesc) :: _ ->
| _ -> Language.equal language (get_language (Procdesc.get_proc_name pdesc))
true | _ ->
in true
List.iter in
~f:(fun {language; callback} -> if language_matches language then callback environment) List.iter
!cluster_callbacks ~f:(fun {language; callback} -> if language_matches language then callback environment)
!cluster_callbacks
let dump_duplicate_procs (exe_env: Exe_env.t) procs = let dump_duplicate_procs (exe_env: Exe_env.t) procs =

Loading…
Cancel
Save