You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.0 KiB

(*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
type json_trace_item = {
level : int;
filename : string;
line_number : int;
column_number : int;
description : string;
}
type loc = {
file: string;
lnum: int;
cnum: int;
enum: int;
}
type nullsafe_mode = [Default | LocalTrustAll | LocalTrustSome | LocalTrustNone | Strict]
type nullsafe_meta_issue_info = {
num_issues: int;
curr_nullsafe_mode: nullsafe_mode;
can_be_promoted_to: nullsafe_mode nullable (* If present, it implies that the class is not only free of issues, but the mode can be promoted to a stricter one *)
}
type nullsafe_extra = {
class_name: string;
package: string nullable;
?meta_issue_info: nullsafe_meta_issue_info option (* Should be present if the issue is "nullsafe meta issue" *)
}
type extra = {
?cost_polynomial : string option;
?cost_degree : int option;
?nullsafe_extra : nullsafe_extra option
}
type jsonbug = {
bug_type : string;
?doc_url : string option;
qualifier : string;
severity : string;
line: int;
column: int;
procedure : string;
procedure_start_line : int;
file : string;
bug_trace : json_trace_item list;
key : string;
?node_key : string option;
hash : string;
?dotty : string option;
?infer_source_loc: loc option;
bug_type_hum: string;
?linters_def_file: string option;
?traceview_id: int option;
?censored_reason : string option;
?access : string option;
?extras : extra option;
}
type report = jsonbug list
type hum_info = {
hum_polynomial : string;
hum_degree : string;
big_o : string;
}
type cost_info = {
polynomial_version : int;
polynomial : string;
?degree : int option;
hum : hum_info;
trace : json_trace_item list;
}
type cost_item = {
hash : string;
loc : loc;
procedure_name : string;
procedure_id : string;
is_on_ui_thread : bool;
exec_cost : cost_info;
autoreleasepool_size : cost_info;
}
type costs_report = cost_item list