diff --git a/infer/src/backend/errlog.ml b/infer/src/backend/errlog.ml index f0ca191e6..c6a6653c1 100644 --- a/infer/src/backend/errlog.ml +++ b/infer/src/backend/errlog.ml @@ -208,7 +208,7 @@ let log_issue _ekind err_log loc node_id_key session ltr pre_opt exn = let d = match ekind with | Exceptions.Kerror -> L.d_error | Exceptions.Kwarning -> L.d_warning - | Exceptions.Kinfo -> L.d_info in + | Exceptions.Kinfo | Exceptions.Kadvice -> L.d_info in d warn_str; L.d_ln(); end in if should_print_now then print_now () @@ -251,13 +251,15 @@ module Err_table = struct let map_warn_fp = ref LocMap.empty in let map_warn_re = ref LocMap.empty in let map_info = ref LocMap.empty in + let map_advice = ref LocMap.empty in let add_err nslm (ekind , in_fp, err_name, desc, _) = let map = match in_fp, ekind with | true, Exceptions.Kerror -> map_err_fp | false, Exceptions.Kerror -> map_err_re | true, Exceptions.Kwarning -> map_warn_fp | false, Exceptions.Kwarning -> map_warn_re - | _, Exceptions.Kinfo -> map_info in + | _, Exceptions.Kinfo -> map_info + | _, Exceptions.Kadvice -> map_advice in try let err_list = LocMap.find nslm !map in map := LocMap.add nslm ((err_name, desc) :: err_list) !map diff --git a/infer/src/backend/exceptions.ml b/infer/src/backend/exceptions.ml index 5b6349e68..b121c942a 100644 --- a/infer/src/backend/exceptions.ml +++ b/infer/src/backend/exceptions.ml @@ -28,7 +28,7 @@ type err_class = Checker | Prover | Nocat (** kind of error/warning *) type err_kind = - Kwarning | Kerror | Kinfo + Kwarning | Kerror | Kinfo | Kadvice exception Abduction_case_not_implemented of L.ml_loc exception Analysis_stops of Localise.error_desc * L.ml_loc option @@ -323,6 +323,7 @@ let err_kind_string = function | Kwarning -> "WARNING" | Kerror -> "ERROR" | Kinfo -> "INFO" + | Kadvice -> "ADVICE" (** string describing an error class *) let err_class_string = function diff --git a/infer/src/backend/exceptions.mli b/infer/src/backend/exceptions.mli index ef81e48f9..dbc7fde0f 100644 --- a/infer/src/backend/exceptions.mli +++ b/infer/src/backend/exceptions.mli @@ -24,7 +24,7 @@ type exception_severity = (** severity of bugs *) (** kind of error/warning *) type err_kind = - Kwarning | Kerror | Kinfo + Kwarning | Kerror | Kinfo | Kadvice (** class of error *) type err_class = Checker | Prover | Nocat diff --git a/infer/src/backend/inferprint.ml b/infer/src/backend/inferprint.ml index 3edad6dec..7bd0614fa 100644 --- a/infer/src/backend/inferprint.ml +++ b/infer/src/backend/inferprint.ml @@ -603,6 +603,7 @@ module Stats = struct mutable ndefective : int; mutable nerrors : int; mutable ninfos : int; + mutable nadvice : int; mutable nLOC : int; mutable nprocs : int; mutable nspecs : int; @@ -618,6 +619,7 @@ module Stats = struct ndefective = 0; nerrors = 0; ninfos = 0; + nadvice = 0; nLOC = 0; nprocs = 0; nspecs = 0; @@ -676,7 +678,8 @@ module Stats = struct let trace = loc_trace_to_string_list linereader 1 ltr in stats.saved_errors <- IList.rev_append (error_strs @ trace @ [""]) stats.saved_errors | Exceptions.Kwarning -> stats.nwarnings <- stats.nwarnings + 1 - | Exceptions.Kinfo -> stats.ninfos <- stats.ninfos + 1 in + | Exceptions.Kinfo -> stats.ninfos <- stats.ninfos + 1 + | Exceptions.Kadvice -> stats.nadvice <- stats.nadvice + 1 in Errlog.iter process_row err_log; !found_errors