[starvation] no starvation warnings on constructors

Reviewed By: mbouaziz

Differential Revision: D13082676

fbshipit-source-id: 0942149ae
master
Nikos Gorogiannis 6 years ago committed by Facebook Github Bot
parent 28e7063ac4
commit 276c25b563

@ -458,18 +458,21 @@ let report_starvation env {StarvationDomain.events; ui} report_map' =
(* for each summary related to the endpoint, analyse and report on its pairs *) (* for each summary related to the endpoint, analyse and report on its pairs *)
fold_reportable_summaries env endpoint_class ~init:report_map fold_reportable_summaries env endpoint_class ~init:report_map
~f:(fun acc (endpoint_pname, {order; ui}) -> ~f:(fun acc (endpoint_pname, {order; ui}) ->
(* skip methods known to run on ui thread, as they cannot run in parallel to us *) (* skip methods on ui thread, as they cannot run in parallel to us *)
if UIThreadDomain.is_empty ui then if UIThreadDomain.is_empty ui then
OrderDomain.fold OrderDomain.fold
(report_remote_block ui_explain event endpoint_lock endpoint_pname) (report_remote_block ui_explain event endpoint_lock endpoint_pname)
order acc order acc
else acc ) ) else acc ) )
in in
match ui with (* do not report starvation/strict mode warnings on constructors, keep that for callers *)
| AbstractDomain.Types.Bottom -> if Typ.Procname.is_constructor current_pname then report_map'
report_map' else
| AbstractDomain.Types.NonBottom ui_explain -> match ui with
EventDomain.fold (report_on_current_elem ui_explain) events report_map' | AbstractDomain.Types.Bottom ->
report_map'
| AbstractDomain.Types.NonBottom ui_explain ->
EventDomain.fold (report_on_current_elem ui_explain) events report_map'
let reporting {Callbacks.procedures; source_file} = let reporting {Callbacks.procedures; source_file} =

Loading…
Cancel
Save