[errlog][minor] rename "name" and "err_name" to "issue_type"

Summary: .

Reviewed By: dulmarod

Differential Revision: D21663958

fbshipit-source-id: c7b1a7512
master
Jules Villard 5 years ago committed by Facebook GitHub Bot
parent b02d8e9b22
commit b61f921572

@ -72,7 +72,8 @@ type node =
| FrontendNode of {node_key: Procdesc.NodeKey.t}
| BackendNode of {node: Procdesc.Node.t}
type err_key = {severity: Exceptions.severity; err_name: IssueType.t; err_desc: Localise.error_desc}
type err_key =
{severity: Exceptions.severity; issue_type: IssueType.t; err_desc: Localise.error_desc}
[@@deriving compare]
(** Data associated to a specific error *)
@ -106,11 +107,11 @@ module ErrLogHash = struct
type t = err_key
(* NOTE: changing the hash function can change the order in which issues are reported. *)
let hash key = Hashtbl.hash (key.severity, key.err_name, Localise.error_desc_hash key.err_desc)
let hash key = Hashtbl.hash (key.severity, key.issue_type, Localise.error_desc_hash key.err_desc)
let equal key1 key2 =
[%compare.equal: Exceptions.severity * IssueType.t] (key1.severity, key1.err_name)
(key2.severity, key2.err_name)
[%compare.equal: Exceptions.severity * IssueType.t] (key1.severity, key1.issue_type)
(key2.severity, key2.issue_type)
&& Localise.error_desc_equal key1.err_desc key2.err_desc
end
@ -144,7 +145,7 @@ let fold (f : err_key -> err_data -> 'a -> 'a) t acc =
let pp_errors fmt (errlog : t) =
let f key _ =
if Exceptions.equal_severity key.severity Exceptions.Error then
F.fprintf fmt "%a@ " IssueType.pp key.err_name
F.fprintf fmt "%a@ " IssueType.pp key.issue_type
in
ErrLogHash.iter f errlog
@ -153,7 +154,7 @@ let pp_errors fmt (errlog : t) =
let pp_warnings fmt (errlog : t) =
let f key _ =
if Exceptions.equal_severity key.severity Exceptions.Warning then
F.fprintf fmt "%a %a@ " IssueType.pp key.err_name Localise.pp_error_desc key.err_desc
F.fprintf fmt "%a %a@ " IssueType.pp key.issue_type Localise.pp_error_desc key.err_desc
in
ErrLogHash.iter f errlog
@ -169,7 +170,7 @@ let pp_html source path_to_root fmt (errlog : t) =
in
let pp_err_log ek key err_datas =
if Exceptions.equal_severity key.severity ek then
F.fprintf fmt "<br>%a %a %a" IssueType.pp key.err_name Localise.pp_error_desc key.err_desc
F.fprintf fmt "<br>%a %a %a" IssueType.pp key.issue_type Localise.pp_error_desc key.err_desc
pp_eds err_datas
in
let pp severity =
@ -202,13 +203,13 @@ let update errlog_old errlog_new =
let log_issue severity err_log ~loc ~node ~session ~ltr ~linters_def_file ~doc_url ~access ~extras
checker exn =
let error = Exceptions.recognize_exception exn in
if not (IssueType.checker_can_report checker error.name) then
if not (IssueType.checker_can_report checker error.issue_type) then
L.die InternalError
"Issue type \"%s\" cannot be reported by the checker \"%s\". The only checker that is \
allowed to report this issue type is \"%s\". If this is incorrect please either update the \
issue in IssueType or create a new issue type for \"%s\"."
error.name.unique_id (Checker.get_name checker)
(Checker.get_name error.name.checker)
error.issue_type.unique_id (Checker.get_name checker)
(Checker.get_name error.issue_type.checker)
(Checker.get_name checker) ;
let severity = Option.value error.severity ~default:severity in
let hide_java_loc_zero =
@ -258,19 +259,19 @@ let log_issue severity err_log ~loc ~node ~session ~ltr ~linters_def_file ~doc_u
; access
; extras }
in
let err_key = {severity; err_name= error.name; err_desc= error.description} in
let err_key = {severity; issue_type= error.issue_type; err_desc= error.description} in
add_issue err_log err_key (ErrDataSet.singleton err_data)
in
let should_print_now = match exn with Exceptions.Internal_error _ -> true | _ -> added in
let print_now () =
L.(debug Analysis Medium)
"@\n%a@\n@?"
(Exceptions.pp_err loc severity error.name error.description error.ocaml_pos)
(Exceptions.pp_err loc severity error.issue_type error.description error.ocaml_pos)
() ;
if not (Exceptions.equal_severity severity Exceptions.Error) then (
let warn_str =
let pp fmt =
Format.fprintf fmt "%s %a" error.name.IssueType.unique_id Localise.pp_error_desc
Format.fprintf fmt "%s %a" error.issue_type.unique_id Localise.pp_error_desc
error.description
in
F.asprintf "%t" pp

@ -41,7 +41,7 @@ type node =
| BackendNode of {node: Procdesc.Node.t}
type err_key = private
{severity: Exceptions.severity; err_name: IssueType.t; err_desc: Localise.error_desc}
{severity: Exceptions.severity; issue_type: IssueType.t; err_desc: Localise.error_desc}
[@@deriving compare]
(** Data associated to a specific error *)

@ -115,7 +115,7 @@ exception Unary_minus_applied_to_unsigned_expression of Localise.error_desc * L.
exception Wrong_argument_number of L.ocaml_pos
type t =
{ name: IssueType.t
{ issue_type: IssueType.t
; description: Localise.error_desc
; ocaml_pos: L.ocaml_pos option (** location in the infer source code *)
; visibility: visibility
@ -124,9 +124,8 @@ type t =
let recognize_exception exn =
match exn with
(* all the static names of errors must be defined in Config.IssueType *)
| Abduction_case_not_implemented ocaml_pos ->
{ name= IssueType.abduction_case_not_implemented
{ issue_type= IssueType.abduction_case_not_implemented
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
@ -134,35 +133,35 @@ let recognize_exception exn =
; category= Nocat }
| Analysis_stops (desc, ocaml_pos_opt) ->
let visibility = if Config.analysis_stops then Exn_user else Exn_developer in
{ name= IssueType.analysis_stops
{ issue_type= IssueType.analysis_stops
; description= desc
; ocaml_pos= ocaml_pos_opt
; visibility
; severity= None
; category= Nocat }
| Array_of_pointsto ocaml_pos ->
{ name= IssueType.array_of_pointsto
{ issue_type= IssueType.array_of_pointsto
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Array_out_of_bounds_l1 (desc, ocaml_pos) ->
{ name= IssueType.array_out_of_bounds_l1
{ issue_type= IssueType.array_out_of_bounds_l1
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= Some Error
; category= Checker }
| Array_out_of_bounds_l2 (desc, ocaml_pos) ->
{ name= IssueType.array_out_of_bounds_l2
{ issue_type= IssueType.array_out_of_bounds_l2
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Array_out_of_bounds_l3 (desc, ocaml_pos) ->
{ name= IssueType.array_out_of_bounds_l3
{ issue_type= IssueType.array_out_of_bounds_l3
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
@ -170,59 +169,59 @@ let recognize_exception exn =
; category= Nocat }
| Assert_failure (f, l, c) ->
let ocaml_pos = (f, l, c, c) in
{ name= IssueType.assert_failure
{ issue_type= IssueType.assert_failure
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Bad_footprint ocaml_pos ->
{ name= IssueType.bad_footprint
{ issue_type= IssueType.bad_footprint
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Biabd_use_after_free (desc, ocaml_pos) ->
{ name= IssueType.biabd_use_after_free
{ issue_type= IssueType.biabd_use_after_free
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Prover }
| Cannot_star ocaml_pos ->
{ name= IssueType.cannot_star
{ issue_type= IssueType.cannot_star
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Class_cast_exception (desc, ocaml_pos) ->
{ name= IssueType.class_cast_exception
{ issue_type= IssueType.class_cast_exception
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Prover }
| Condition_always_true_false (desc, b, ocaml_pos) ->
let name =
let issue_type =
if b then IssueType.biabd_condition_always_true else IssueType.biabd_condition_always_false
in
{ name
{ issue_type
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Nocat }
| Custom_error (error_msg, desc) ->
{ name= IssueType.register_from_string ~id:error_msg Biabduction
{ issue_type= IssueType.register_from_string ~id:error_msg Biabduction
; description= desc
; ocaml_pos= None
; visibility= Exn_user
; severity= None
; category= Checker }
| Dummy_exception desc ->
{ name= IssueType.analysis_stops
{ issue_type= IssueType.analysis_stops
; description= desc
; ocaml_pos= None
; visibility= Exn_developer
@ -230,105 +229,105 @@ let recognize_exception exn =
; category= Checker }
| Dangling_pointer_dereference (user_visible, desc, ocaml_pos) ->
let visibility = if user_visible then Exn_user else Exn_developer in
{ name= IssueType.dangling_pointer_dereference
{ issue_type= IssueType.dangling_pointer_dereference
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility
; severity= None
; category= Prover }
| Deallocate_stack_variable desc ->
{ name= IssueType.deallocate_stack_variable
{ issue_type= IssueType.deallocate_stack_variable
; description= desc
; ocaml_pos= None
; visibility= Exn_user
; severity= None
; category= Prover }
| Deallocate_static_memory desc ->
{ name= IssueType.deallocate_static_memory
{ issue_type= IssueType.deallocate_static_memory
; description= desc
; ocaml_pos= None
; visibility= Exn_user
; severity= None
; category= Prover }
| Deallocation_mismatch (desc, ocaml_pos) ->
{ name= IssueType.deallocation_mismatch
{ issue_type= IssueType.deallocation_mismatch
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Prover }
| Divide_by_zero (desc, ocaml_pos) ->
{ name= IssueType.divide_by_zero
{ issue_type= IssueType.divide_by_zero
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Error
; category= Checker }
| Eradicate (kind, desc) ->
{ name= kind
{ issue_type= kind
; description= desc
; ocaml_pos= None
; visibility= Exn_user
; severity= None
; category= Prover }
| Empty_vector_access (desc, ocaml_pos) ->
{ name= IssueType.empty_vector_access
{ issue_type= IssueType.empty_vector_access
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Error
; category= Prover }
| Field_not_null_checked (desc, ocaml_pos) ->
{ name= IssueType.field_not_null_checked
{ issue_type= IssueType.field_not_null_checked
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Warning
; category= Nocat }
| Frontend_warning (issue_type, desc, ocaml_pos) ->
{ name= issue_type
{ issue_type
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Linters }
| Checkers (kind, desc) ->
{ name= kind
{ issue_type= kind
; description= desc
; ocaml_pos= None
; visibility= Exn_user
; severity= None
; category= Prover }
| Null_dereference (desc, ocaml_pos) ->
{ name= IssueType.null_dereference
{ issue_type= IssueType.null_dereference
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Prover }
| Null_test_after_dereference (desc, ocaml_pos) ->
{ name= IssueType.null_test_after_dereference
{ issue_type= IssueType.null_test_after_dereference
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Nocat }
| Pointer_size_mismatch (desc, ocaml_pos) ->
{ name= IssueType.pointer_size_mismatch
{ issue_type= IssueType.pointer_size_mismatch
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Error
; category= Checker }
| Inherently_dangerous_function desc ->
{ name= IssueType.inherently_dangerous_function
{ issue_type= IssueType.inherently_dangerous_function
; description= desc
; ocaml_pos= None
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Internal_error desc ->
{ name= IssueType.internal_error
{ issue_type= IssueType.internal_error
; description= desc
; ocaml_pos= None
; visibility= Exn_developer
@ -336,21 +335,21 @@ let recognize_exception exn =
; category= Nocat }
| Leak (fp_part, (exn_vis, error_desc), done_array_abstraction, resource, ocaml_pos) ->
if done_array_abstraction then
{ name= IssueType.leak_after_array_abstraction
{ issue_type= IssueType.leak_after_array_abstraction
; description= error_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Prover }
else if fp_part then
{ name= IssueType.leak_in_footprint
{ issue_type= IssueType.leak_in_footprint
; description= error_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Prover }
else
let name =
let issue_type =
match resource with
| PredSymb.Rmemory _ ->
IssueType.memory_leak
@ -361,7 +360,7 @@ let recognize_exception exn =
| PredSymb.Rignore ->
IssueType.memory_leak
in
{ name
{ issue_type
; description= error_desc
; ocaml_pos= Some ocaml_pos
; visibility= exn_vis
@ -369,35 +368,35 @@ let recognize_exception exn =
; category= Prover }
| Missing_fld (fld, ocaml_pos) ->
let desc = Localise.verbatim_desc (Fieldname.to_full_string fld) in
{ name= IssueType.missing_fld
{ issue_type= IssueType.missing_fld
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Premature_nil_termination (desc, ocaml_pos) ->
{ name= IssueType.premature_nil_termination
{ issue_type= IssueType.premature_nil_termination
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Prover }
| Parameter_not_null_checked (desc, ocaml_pos) ->
{ name= IssueType.parameter_not_null_checked
{ issue_type= IssueType.parameter_not_null_checked
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Warning
; category= Nocat }
| Precondition_not_found (desc, ocaml_pos) ->
{ name= IssueType.precondition_not_found
{ issue_type= IssueType.precondition_not_found
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Precondition_not_met (desc, ocaml_pos) ->
{ name= IssueType.precondition_not_met
{ issue_type= IssueType.precondition_not_met
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
@ -405,42 +404,42 @@ let recognize_exception exn =
; category= Nocat }
(* always a warning *)
| Retain_cycle (desc, ocaml_pos) ->
{ name= IssueType.retain_cycle
{ issue_type= IssueType.retain_cycle
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Prover }
| Registered_observer_being_deallocated (desc, ocaml_pos) ->
{ name= IssueType.biabd_registered_observer_being_deallocated
{ issue_type= IssueType.biabd_registered_observer_being_deallocated
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Error
; category= Nocat }
| Stack_variable_address_escape (desc, ocaml_pos) ->
{ name= IssueType.biabd_stack_variable_address_escape
{ issue_type= IssueType.biabd_stack_variable_address_escape
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= Some Error
; category= Nocat }
| SymOp.Analysis_failure_exe _ ->
{ name= IssueType.failure_exe
{ issue_type= IssueType.failure_exe
; description= Localise.no_desc
; ocaml_pos= None
; visibility= Exn_system
; severity= None
; category= Nocat }
| Skip_function desc ->
{ name= IssueType.skip_function
{ issue_type= IssueType.skip_function
; description= desc
; ocaml_pos= None
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Skip_pointer_dereference (desc, ocaml_pos) ->
{ name= IssueType.skip_pointer_dereference
{ issue_type= IssueType.skip_pointer_dereference
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
@ -448,28 +447,28 @@ let recognize_exception exn =
; category= Nocat }
(* always an info *)
| Symexec_memory_error ocaml_pos ->
{ name= IssueType.symexec_memory_error
{ issue_type= IssueType.symexec_memory_error
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| Unary_minus_applied_to_unsigned_expression (desc, ocaml_pos) ->
{ name= IssueType.unary_minus_applied_to_unsigned_expression
{ issue_type= IssueType.unary_minus_applied_to_unsigned_expression
; description= desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_user
; severity= None
; category= Nocat }
| Wrong_argument_number ocaml_pos ->
{ name= IssueType.wrong_argument_number
{ issue_type= IssueType.wrong_argument_number
; description= Localise.no_desc
; ocaml_pos= Some ocaml_pos
; visibility= Exn_developer
; severity= None
; category= Nocat }
| exn ->
{ name= IssueType.failure_exe
{ issue_type= IssueType.failure_exe
; description=
Localise.verbatim_desc (F.asprintf "%a: %s" Exn.pp exn (Caml.Printexc.get_backtrace ()))
; ocaml_pos= None
@ -488,7 +487,7 @@ let print_exception_html s exn =
| Some ocaml_pos ->
" " ^ L.ocaml_pos_to_string ocaml_pos
in
L.d_printfln ~color:Red "%s%s %a%s" s error.name.IssueType.unique_id Localise.pp_error_desc
L.d_printfln ~color:Red "%s%s %a%s" s error.issue_type.unique_id Localise.pp_error_desc
error.description ocaml_pos_string
@ -507,10 +506,10 @@ let severity_string = function
(** pretty print an error *)
let pp_err loc severity ex_name desc ocaml_pos_opt fmt () =
let pp_err loc severity issue_type desc ocaml_pos_opt fmt () =
let kind = severity_string (if equal_severity severity Info then Warning else severity) in
F.fprintf fmt "%a:%d: %s: %a %a%a@\n" SourceFile.pp loc.Location.file loc.Location.line kind
IssueType.pp ex_name Localise.pp_error_desc desc L.pp_ocaml_pos_opt ocaml_pos_opt
IssueType.pp issue_type Localise.pp_error_desc desc L.pp_ocaml_pos_opt ocaml_pos_opt
(** Return true if the exception is not serious and should be handled in timeout mode *)

@ -137,7 +137,7 @@ val pp_err :
(** pretty print an error *)
type t =
{ name: IssueType.t
{ issue_type: IssueType.t
; description: Localise.error_desc
; ocaml_pos: Logging.ocaml_pos option (** location in the infer source code *)
; visibility: visibility

@ -11,7 +11,7 @@ type log_t =
?ltr:Errlog.loc_trace -> ?extras:Jsonbug_t.extra -> Checker.t -> IssueType.t -> string -> unit
let log_issue_from_errlog severity err_log ~loc ~node ~session ~ltr ~access ~extras checker exn =
let issue_type = (Exceptions.recognize_exception exn).name in
let issue_type = (Exceptions.recognize_exception exn).issue_type in
if (not Config.filtering) (* no-filtering takes priority *) || issue_type.IssueType.enabled then
let doc_url = issue_type.doc_url in
let linters_def_file = issue_type.linters_def_file in

@ -154,7 +154,7 @@ end = struct
let err_per_line = Hashtbl.create 17 in
let add_err (key : Errlog.err_key) (err_data : Errlog.err_data) =
let err_str =
F.asprintf "%s %a" key.err_name.IssueType.unique_id Localise.pp_error_desc key.err_desc
F.asprintf "%s %a" key.issue_type.unique_id Localise.pp_error_desc key.err_desc
in
try
let set = Hashtbl.find err_per_line err_data.loc.Location.line in

@ -244,7 +244,7 @@ let process_execution_failures (log_issue : log_issue) =
match (fs.node_ok, fs.first_failure) with
| 0, Some (loc, node, _, loc_trace, exn) when not Config.debug_exceptions ->
let error = Exceptions.recognize_exception exn in
let desc' = Localise.verbatim_desc ("exception: " ^ error.name.IssueType.unique_id) in
let desc' = Localise.verbatim_desc ("exception: " ^ error.issue_type.unique_id) in
let exn' = Exceptions.Analysis_stops (desc', error.ocaml_pos) in
log_issue ~loc ~node ~ltr:loc_trace exn'
| _ ->

@ -1496,7 +1496,7 @@ and instrs ?(mask_errors = false) analysis_data instrs ppl =
""
in
L.d_warning
(F.sprintf "Generated Instruction Failed with: %s%s" error.name.IssueType.unique_id loc) ;
(F.sprintf "Generated Instruction Failed with: %s%s" error.issue_type.unique_id loc) ;
L.d_ln () ;
[(p, path)]
in

@ -1080,7 +1080,7 @@ let perform_transition ({InterproceduralAnalysis.tenv; _} as analysis_data) proc
BiabductionConfig.allow_leak := allow_leak ;
L.debug Analysis Medium "Error in collect_preconditions for %a@." Procname.pp proc_name ;
let error = Exceptions.recognize_exception exn in
let err_str = "exception raised " ^ error.name.IssueType.unique_id in
let err_str = "exception raised " ^ error.issue_type.unique_id in
L.(debug Analysis Medium) "Error: %s %a@." err_str L.pp_ocaml_pos_opt error.ocaml_pos ;
[] )
in

@ -157,19 +157,19 @@ module JsonIssuePrinter = MakeJsonListPrinter (struct
in
if SourceFile.is_invalid source_file then
L.(die InternalError)
"Invalid source file for %a %a@.Trace: %a@." IssueType.pp err_key.err_name
"Invalid source file for %a %a@.Trace: %a@." IssueType.pp err_key.issue_type
Localise.pp_error_desc err_key.err_desc Errlog.pp_loc_trace err_data.loc_trace ;
let should_report_source_file =
(not (SourceFile.is_biabduction_model source_file))
|| Config.debug_mode || Config.debug_exceptions
in
if
error_filter source_file err_key.err_name
error_filter source_file err_key.issue_type
&& should_report_source_file
&& should_report err_key.err_name err_key.err_desc err_data.err_class
&& should_report err_key.issue_type err_key.err_desc err_data.err_class
then
let severity = Exceptions.severity_string err_key.severity in
let bug_type = err_key.err_name.IssueType.unique_id in
let bug_type = err_key.issue_type.unique_id in
let file =
SourceFile.to_string ~force_relative:Config.report_force_relative_path source_file
in
@ -182,7 +182,7 @@ module JsonIssuePrinter = MakeJsonListPrinter (struct
in
let qualifier =
let base_qualifier = error_desc_to_plain_string err_key.err_desc in
if IssueType.(equal resource_leak) err_key.err_name then
if IssueType.(equal resource_leak) err_key.issue_type then
match Errlog.compute_local_exception_line err_data.loc_trace with
| None ->
base_qualifier
@ -209,11 +209,11 @@ module JsonIssuePrinter = MakeJsonListPrinter (struct
; hash= compute_hash ~severity ~bug_type ~proc_name ~file ~qualifier
; dotty= error_desc_to_dotty_string err_key.err_desc
; infer_source_loc= json_ml_loc
; bug_type_hum= err_key.err_name.IssueType.hum
; bug_type_hum= err_key.issue_type.hum
; linters_def_file= err_data.linters_def_file
; doc_url= err_data.doc_url
; traceview_id= None
; censored_reason= censored_reason err_key.err_name source_file
; censored_reason= censored_reason err_key.issue_type source_file
; access= err_data.access
; extras= err_data.extras }
in

Loading…
Cancel
Save