[infer] remove the field `nodes` in the summary definition

Summary:
This field was always empty.

depends on D6351097

Reviewed By: sblackshear, jvillard

Differential Revision: D6351243

fbshipit-source-id: 4a74bea
master
Jeremy Dubreil 7 years ago committed by Facebook Github Bot
parent 97927f6f46
commit 85ab063983

@ -133,8 +133,6 @@ type summary_val =
; vflags: ProcAttributes.proc_flags ; vflags: ProcAttributes.proc_flags
; vline: int ; vline: int
; vsignature: string ; vsignature: string
; vweight: int
; vproof_coverage: string
; vproof_trace: string } ; vproof_trace: string }
(** compute values from summary data to export to csv format *) (** compute values from summary data to export to csv format *)
@ -144,9 +142,8 @@ let summary_values summary =
let err_log = Specs.get_err_log summary in let err_log = Specs.get_err_log summary in
let proc_name = Specs.get_proc_name summary in let proc_name = Specs.get_proc_name summary in
let signature = Specs.get_signature summary in let signature = Specs.get_signature summary in
let nodes_nr = List.length summary.Specs.nodes in
let specs = Specs.get_specs_from_payload summary in let specs = Specs.get_specs_from_payload summary in
let nr_nodes_visited, lines_visited = let lines_visited =
let visited = ref Specs.Visitedset.empty in let visited = ref Specs.Visitedset.empty in
let do_spec spec = visited := Specs.Visitedset.union spec.Specs.visited !visited in let do_spec spec = visited := Specs.Visitedset.union spec.Specs.visited !visited in
List.iter ~f:do_spec specs ; List.iter ~f:do_spec specs ;
@ -154,16 +151,13 @@ let summary_values summary =
Specs.Visitedset.iter Specs.Visitedset.iter
(fun (_, ls) -> List.iter ~f:(fun l -> visited_lines := Int.Set.add !visited_lines l) ls) (fun (_, ls) -> List.iter ~f:(fun l -> visited_lines := Int.Set.add !visited_lines l) ls)
!visited ; !visited ;
(Specs.Visitedset.cardinal !visited, Int.Set.elements !visited_lines) Int.Set.elements !visited_lines
in in
let proof_trace = let proof_trace =
let pp_line fmt l = F.fprintf fmt "%d" l in let pp_line fmt l = F.fprintf fmt "%d" l in
let pp fmt = F.fprintf fmt "%a" (Pp.seq pp_line) lines_visited in let pp fmt = F.fprintf fmt "%a" (Pp.seq pp_line) lines_visited in
F.asprintf "%t" pp F.asprintf "%t" pp
in in
let node_coverage =
if Int.equal nodes_nr 0 then 0.0 else float_of_int nr_nodes_visited /. float_of_int nodes_nr
in
let pp_failure failure = F.asprintf "%a" SymOp.pp_failure_kind failure in let pp_failure failure = F.asprintf "%a" SymOp.pp_failure_kind failure in
{ vname= Typ.Procname.to_string proc_name { vname= Typ.Procname.to_string proc_name
; vname_id= Typ.Procname.to_filename proc_name ; vname_id= Typ.Procname.to_filename proc_name
@ -179,8 +173,6 @@ let summary_values summary =
; vfile= SourceFile.to_string attributes.ProcAttributes.loc.Location.file ; vfile= SourceFile.to_string attributes.ProcAttributes.loc.Location.file
; vline= attributes.ProcAttributes.loc.Location.line ; vline= attributes.ProcAttributes.loc.Location.line
; vsignature= signature ; vsignature= signature
; vweight= nodes_nr
; vproof_coverage= Printf.sprintf "%2.2f" node_coverage
; vproof_trace= proof_trace } ; vproof_trace= proof_trace }
@ -208,8 +200,6 @@ module ProcsCsv = struct
pp "%s," sv.vfile ; pp "%s," sv.vfile ;
pp "%d," sv.vline ; pp "%d," sv.vline ;
pp "\"%s\"," (Escape.escape_csv sv.vsignature) ; pp "\"%s\"," (Escape.escape_csv sv.vsignature) ;
pp "%d," sv.vweight ;
pp "%s," sv.vproof_coverage ;
pp "%s@\n" sv.vproof_trace pp "%s@\n" sv.vproof_trace
end end
@ -1241,4 +1231,3 @@ let main ~report_csv ~report_json =
pp_json_report_by_report_kind formats_by_report_kind fname pp_json_report_by_report_kind formats_by_report_kind fname
| None -> | None ->
pp_summary_and_issues formats_by_report_kind issue_formats pp_summary_and_issues formats_by_report_kind issue_formats

@ -356,8 +356,7 @@ type payload =
; uninit: UninitDomain.summary option } ; uninit: UninitDomain.summary option }
type summary = type summary =
{ nodes: Procdesc.Node.id list (** ids of cfg nodes of the procedure *) { phase: phase (** in FOOTPRINT phase or in RE_EXECUTION PHASE *)
; phase: phase (** in FOOTPRINT phase or in RE_EXECUTION PHASE *)
; payload: payload (** payload containing the result of some analysis *) ; payload: payload (** payload containing the result of some analysis *)
; sessions: int ref (** Session number: how many nodes went trough symbolic execution *) ; sessions: int ref (** Session number: how many nodes went trough symbolic execution *)
; stats: stats (** statistics: execution time and list of errors *) ; stats: stats (** statistics: execution time and list of errors *)
@ -756,8 +755,7 @@ let empty_payload =
initializes the summary for [proc_name] given dependent procs in list [depend_list]. *) initializes the summary for [proc_name] given dependent procs in list [depend_list]. *)
let init_summary proc_desc = let init_summary proc_desc =
let summary = let summary =
{ nodes= [] (* TODO(T23648322): remove this information from the summary *) { phase= FOOTPRINT
; phase= FOOTPRINT
; sessions= ref 0 ; sessions= ref 0
; payload= empty_payload ; payload= empty_payload
; stats= empty_stats ; stats= empty_stats

@ -142,8 +142,7 @@ type payload =
(** Procedure summary *) (** Procedure summary *)
type summary = type summary =
{ nodes: Procdesc.Node.id list (** ids of cfg nodes of the procedure *) { phase: phase (** in FOOTPRINT phase or in RE_EXECUTION PHASE *)
; phase: phase (** in FOOTPRINT phase or in RE_EXECUTION PHASE *)
; payload: payload (** payload containing the result of some analysis *) ; payload: payload (** payload containing the result of some analysis *)
; sessions: int ref (** Session number: how many nodes went trough symbolic execution *) ; sessions: int ref (** Session number: how many nodes went trough symbolic execution *)
; stats: stats (** statistics: execution time and list of errors *) ; stats: stats (** statistics: execution time and list of errors *)

@ -41,14 +41,12 @@ end
(** Create a module with the toplevel callback. *) (** Create a module with the toplevel callback. *)
module MkCallback (Extension : ExtensionT) : CallBackT = struct module MkCallback (Extension : ExtensionT) : CallBackT = struct
(** Update the summary with stats from the checker. *) (** Update the summary with stats from the checker. *)
let update_summary proc_name proc_desc final_typestate_opt = let update_summary proc_name final_typestate_opt =
match Specs.get_summary proc_name with match Specs.get_summary proc_name with
| Some old_summ -> | Some old_summ ->
let nodes = List.map ~f:(fun n -> Procdesc.Node.get_id n) (Procdesc.get_nodes proc_desc) in
let new_summ = let new_summ =
{ old_summ with { old_summ with
Specs.nodes Specs.payload= Extension.update_payload final_typestate_opt old_summ.Specs.payload }
; Specs.payload= Extension.update_payload final_typestate_opt old_summ.Specs.payload }
in in
Specs.add_summary proc_name new_summ Specs.add_summary proc_name new_summ
| None -> | None ->
@ -323,7 +321,7 @@ module MkCallback (Extension : ExtensionT) : CallBackT = struct
EradicateChecks.check_overridden_annotations find_canonical_duplicate tenv curr_pname EradicateChecks.check_overridden_annotations find_canonical_duplicate tenv curr_pname
curr_pdesc annotated_signature ; curr_pdesc annotated_signature ;
TypeErr.report_forall_checks_and_reset tenv (Checkers.ST.report_error tenv) curr_pdesc ; TypeErr.report_forall_checks_and_reset tenv (Checkers.ST.report_error tenv) curr_pdesc ;
update_summary curr_pname curr_pdesc final_typestate_opt update_summary curr_pname final_typestate_opt
(** Entry point for the eradicate-based checker infrastructure. *) (** Entry point for the eradicate-based checker infrastructure. *)
@ -392,3 +390,4 @@ let callback_check_return_type check_return_type callback_args =
{TypeCheck.eradicate= false; check_extension= false; check_ret_type= [check_return_type]} {TypeCheck.eradicate= false; check_extension= false; check_ret_type= [check_return_type]}
in in
Main.callback checks callback_args Main.callback checks callback_args

Loading…
Cancel
Save