@ -13,36 +13,25 @@ type log_t =
-> ? linters_def_file : string -> ? doc_url : string -> ? access : string -> ? extras : Jsonbug_t . extra
-> exn -> unit
type log_issue_from_errlog = Errlog . t -> log_t
let log_issue_from_errlog procname ? clang_method_kind severity err_log ? loc ? node_id ? session ? ltr
? linters_def_file ? doc_url ? access ? extras exn =
let clang_method_kind =
Option . map clang_method_kind ~ f : ProcAttributes . string_of_clang_method_kind
in
let log_issue_from_errlog_internal procname ~ clang_method_kind severity err_log ~ loc ~ node_id
~ session ~ ltr ~ linters_def_file ~ doc_url ~ access ~ extras exn =
let issue_type = ( Exceptions . recognize_exception exn ) . name in
if not Config . filtering (* no-filtering takes priority *) | | issue_type . IssueType . enabled then
let loc = match loc with None -> State . get_loc () | Some loc -> loc in
let node_id =
match node_id with
| None ->
( State . get_node_id_key () :> int * Caml . Digest . t )
| Some node_id ->
node_id
in
let session =
match session with None -> ( State . get_session () :> int ) | Some session -> session
in
let ltr = match ltr with None -> State . get_loc_trace () | Some ltr -> ltr in
Errlog . log_issue procname ? clang_method_kind severity err_log loc node_id session ltr
? linters_def_file ? doc_url ? access ? extras exn
Errlog . log_issue procname ~ clang_method_kind severity err_log ~ loc ~ node_id ~ session ~ ltr
~ linters_def_file ~ doc_url ~ access ~ extras exn
let log_issue_from_errlog procname severity errlog ~ loc ~ node_id ~ ltr ~ linters_def_file ~ doc_url
exn =
let session = ( State . get_session () :> int ) in
log_issue_from_errlog_internal procname ~ clang_method_kind : None severity errlog ~ loc ~ node_id
~ session ~ ltr ~ linters_def_file ~ doc_url ~ access : None ~ extras : None exn
let log_issue_from_summary severity summary ? loc ? node_id ? session ? ltr ? linters_def_file ? doc_url
? access ? extras exn =
let attrs = Summary . get_attributes summary in
let procname = attrs . proc_name in
let clang_method_kind = attrs . clang_method_kind in
let is_java_generated_method =
match procname with
| Typ . Procname . Java java_pname ->
@ -58,8 +47,23 @@ let log_issue_from_summary severity summary ?loc ?node_id ?session ?ltr ?linters
if should_suppress_lint | | is_java_generated_method then () (* Skip the reporting *)
else
let err_log = Summary . get_err_log summary in
log_issue_from_errlog procname ~ clang_method_kind severity err_log ? loc ? node_id ? session ? ltr
? linters_def_file ? doc_url ? access ? extras exn
let clang_method_kind =
Some ( ProcAttributes . string_of_clang_method_kind attrs . clang_method_kind )
in
let loc = match loc with None -> State . get_loc () | Some loc -> loc in
let node_id =
match node_id with
| None ->
( State . get_node_id_key () :> int * Caml . Digest . t )
| Some node_id ->
node_id
in
let session =
match session with None -> ( State . get_session () :> int ) | Some session -> session
in
let ltr = match ltr with None -> State . get_loc_trace () | Some ltr -> ltr in
log_issue_from_errlog_internal procname ~ clang_method_kind severity err_log ~ loc ~ node_id
~ session ~ ltr ~ linters_def_file ~ doc_url ~ access ~ extras exn
let log_issue_deprecated severity proc_name ? loc ? node_id ? session ? ltr ? linters_def_file ? doc_url
@ -79,11 +83,12 @@ let log_error = log_issue_from_summary Exceptions.Error
let log_warning = log_issue_from_summary Exceptions . Warning
let log_issue_external procname ? clang_method_kind severity ? loc ? node_id ? session ? ltr
? linters_def_file ? doc_url ? access ? extras exn =
let log_issue_external procname severity ~ loc ~ ltr ? access exn =
let errlog = IssueLog . get_errlog procname in
log_issue_from_errlog procname ? clang_method_kind severity errlog ? loc ? node_id ? session ? ltr
? linters_def_file ? doc_url ? access ? extras exn
let node_id = ( State . get_node_id_key () :> int * Caml . Digest . t ) in
let session = ( State . get_session () :> int ) in
log_issue_from_errlog_internal procname ~ clang_method_kind : None severity errlog ~ loc ~ node_id
~ session ~ ltr ~ linters_def_file : None ~ doc_url : None ~ access ~ extras : None exn
let is_suppressed ? ( field_name = None ) tenv proc_desc kind =