diff --git a/website/checkers.json b/website/checkers.json index 2e8cb854c8..05397cedaf 100644 --- a/website/checkers.json +++ b/website/checkers.json @@ -8,9 +8,9 @@ "checker-inefficient-keyset-iterator", "checker-lineage", "checker-litho-required-props", "checker-liveness", "checker-loop-hoisting", "checker-parameter-not-null-checked", - "checker-printf-args", "checker-pulse", "checker-purity", - "checker-racerd", "checker-resource-leak-lab", "checker-sil-validation", - "checker-siof", "checker-scope-leakage", "checker-self-in-block", - "checker-starvation", "checker-topl" + "checker-pulse", "checker-purity", "checker-racerd", + "checker-resource-leak-lab", "checker-sil-validation", "checker-siof", + "checker-scope-leakage", "checker-self-in-block", "checker-starvation", + "checker-topl" ] } \ No newline at end of file diff --git a/website/docs/all-categories.md b/website/docs/all-categories.md index 97a0ace6d6..e59e4daf1e 100644 --- a/website/docs/all-categories.md +++ b/website/docs/all-categories.md @@ -50,6 +50,8 @@ Issue types in this category: The null pointer is used where a valid pointer is required, causing a memory fault and a crash. For example, it is dereferenced. Issue types in this category: +- [BLOCK_PARAMETER_NOT_NULL_CHECKED](/docs/next/all-issue-types#block_parameter_not_null_checked) +- [COMPARED_TO_NULL_AND_DEREFERENCED](/docs/next/all-issue-types#compared_to_null_and_dereferenced) - [NIL_BLOCK_CALL](/docs/next/all-issue-types#nil_block_call) - [NIL_BLOCK_CALL_LATENT](/docs/next/all-issue-types#nil_block_call_latent) - [NULLPTR_DEREFERENCE](/docs/next/all-issue-types#nullptr_dereference) @@ -80,6 +82,7 @@ Issue types in this category: - [PULSE_UNNECESSARY_COPY_OPTIONAL](/docs/next/all-issue-types#pulse_unnecessary_copy_optional) - [PULSE_UNNECESSARY_COPY_OPTIONAL_CONST](/docs/next/all-issue-types#pulse_unnecessary_copy_optional_const) - [PULSE_UNNECESSARY_COPY_RETURN](/docs/next/all-issue-types#pulse_unnecessary_copy_return) +- [PULSE_UNNECESSARY_COPY_THRIFT_ASSIGNMENT](/docs/next/all-issue-types#pulse_unnecessary_copy_thrift_assignment) - [REGEX_OP_ON_UI_THREAD](/docs/next/all-issue-types#regex_op_on_ui_thread) - [STRICT_MODE_VIOLATION](/docs/next/all-issue-types#strict_mode_violation) @@ -149,6 +152,7 @@ Sensitive data is flowing where it shouldn't. Issue types in this category: - [DATA_FLOW_TO_SINK](/docs/next/all-issue-types#data_flow_to_sink) +- [LINEAGE_FLOW](/docs/next/all-issue-types#lineage_flow) - [SCOPE_LEAKAGE](/docs/next/all-issue-types#scope_leakage) - [SENSITIVE_DATA_FLOW](/docs/next/all-issue-types#sensitive_data_flow) - [TAINT_ERROR](/docs/next/all-issue-types#taint_error) diff --git a/website/docs/all-checkers.md b/website/docs/all-checkers.md index 526d5c9597..f38ee77795 100644 --- a/website/docs/all-checkers.md +++ b/website/docs/all-checkers.md @@ -41,8 +41,6 @@ Computes the asymptotic complexity of functions with respect to execution cost o Detects when Android fragments are not explicitly nullified before becoming unreachable. -**\*\*\*DEPRECATED\*\*\*** Unmaintained due to poor precision. - [Visit here for more information.](/docs/next/checker-fragment-retains-view) ## Impurity @@ -87,14 +85,6 @@ An Objective-C-specific analysis to detect when a block parameter is used before [Visit here for more information.](/docs/next/checker-parameter-not-null-checked) -## `printf()` Argument Types - -Detect mismatches between the Java `printf` format strings and the argument types For example, this checker will warn about the type error in `printf("Hello %d", "world")` - -**\*\*\*DEPRECATED\*\*\*** Unmaintained. - -[Visit here for more information.](/docs/next/checker-printf-args) - ## Pulse General-purpose memory and value analysis engine. diff --git a/website/docs/all-issue-types.md b/website/docs/all-issue-types.md index b4732dca43..64a9ed6a7b 100644 --- a/website/docs/all-issue-types.md +++ b/website/docs/all-issue-types.md @@ -167,7 +167,7 @@ See [MEMORY_LEAK_C](#memory_leak_c). See [RETAIN_CYCLE](#retain_cycle). ## BLOCK_PARAMETER_NOT_NULL_CHECKED -*Reported as "Block Parameter Not Null Checked" by [parameter-not-null-checked](/docs/next/checker-parameter-not-null-checked).* +*Category: [Null pointer dereference](/docs/next/all-categories#null-pointer-dereference). Reported as "Block Parameter Not Null Checked" by [parameter-not-null-checked](/docs/next/checker-parameter-not-null-checked).* This error type is reported only in Objective-C/Objective-C++. It happens when a method has a block as a parameter, and the block is executed in the method's body without checking it for `nil` first. If a `nil` block is passed to @@ -416,20 +416,11 @@ retain a useless reference to that `View` that will not be cleaned up until the Action: Nullify the `View` in question in `onDestroyView`. -## CHECKERS_PRINTF_ARGS +## COMPARED_TO_NULL_AND_DEREFERENCED -*Reported as "Printf Args" by [printf-args](/docs/next/checker-printf-args).* - -This error is reported when the argument types to a `printf` method do not match the format string. - -```java - void stringInsteadOfInteger(PrintStream out) { - out.printf("Hello %d", "world"); - } -``` - -Action: fix the mismatch between format string and argument types. +*Category: [Null pointer dereference](/docs/next/all-categories#null-pointer-dereference). Reported as "Compared To Null And Dereferenced" by [pulse](/docs/next/checker-pulse).* +A pointer that has both been compared to null, whcich suggests that it could be null, but has also been dereferenced without a null check. ## CONFIG_IMPACT *Category: [Perf regression](/docs/next/all-categories#perf-regression). Reported as "Config Impact" by [config-impact-analysis](/docs/next/checker-config-impact-analysis).* @@ -995,6 +986,12 @@ A blocking `Binder` IPC call occurs on the UI thread. *Reported as "Lab Resource Leak" by [resource-leak-lab](/docs/next/checker-resource-leak-lab).* Toy issue. +## LINEAGE_FLOW + +*Category: [Sensitive data flow](/docs/next/all-categories#sensitive-data-flow). Reported as "Lineage Flow" by [lineage](/docs/next/checker-lineage).* + +A Lineage taint flow has been detected from a source to a sink. + ## LOCKLESS_VIOLATION *Reported as "Lockless Violation" by [starvation](/docs/next/checker-starvation).* @@ -2207,6 +2204,13 @@ void caller(MyClass obj) { } ``` +## PULSE_UNNECESSARY_COPY_THRIFT_ASSIGNMENT + +*Category: [Perf regression](/docs/next/all-categories#perf-regression). Reported as "Unnecessary Copy Assignment into Thrift" by [pulse](/docs/next/checker-pulse).* + +This is similar to [PULSE_UNNECESSARY_COPY_ASSIGNMENT](#pulse_unnecessary_copy_assignment), but is +reported when copied into thrift fields. + ## PURE_FUNCTION *Reported as "Pure Function" by [purity](/docs/next/checker-purity).* diff --git a/website/docs/checker-fragment-retains-view.md b/website/docs/checker-fragment-retains-view.md index f6525120c1..cf92e530db 100644 --- a/website/docs/checker-fragment-retains-view.md +++ b/website/docs/checker-fragment-retains-view.md @@ -5,8 +5,6 @@ description: "Detects when Android fragments are not explicitly nullified before Detects when Android fragments are not explicitly nullified before becoming unreachable. -**\*\*\*DEPRECATED\*\*\*** Unmaintained due to poor precision. - Activate with `--fragment-retains-view`. Supported languages: diff --git a/website/docs/checker-impurity.md b/website/docs/checker-impurity.md index 206fb484cf..1d6baa4e5a 100644 --- a/website/docs/checker-impurity.md +++ b/website/docs/checker-impurity.md @@ -11,7 +11,7 @@ Supported languages: - C/C++/ObjC: Experimental - C#/.Net: No - Erlang: No -- Hack: No +- Hack: Experimental - Java: Experimental - Python: No diff --git a/website/docs/checker-lineage.md b/website/docs/checker-lineage.md index ff1cbe28ed..240e6214e2 100644 --- a/website/docs/checker-lineage.md +++ b/website/docs/checker-lineage.md @@ -15,3 +15,9 @@ Supported languages: - Java: No - Python: No + + +## List of Issue Types + +The following issue types are reported by this checker: +- [LINEAGE_FLOW](/docs/next/all-issue-types#lineage_flow) diff --git a/website/docs/checker-printf-args.md b/website/docs/checker-printf-args.md deleted file mode 100644 index 446fdfcddc..0000000000 --- a/website/docs/checker-printf-args.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "`printf()` Argument Types" -description: "Detect mismatches between the Java `printf` format strings and the argument types For example, this checker will warn about the type error in `printf(\"Hello %d\", \"world\")`" ---- - -Detect mismatches between the Java `printf` format strings and the argument types For example, this checker will warn about the type error in `printf("Hello %d", "world")` - -**\*\*\*DEPRECATED\*\*\*** Unmaintained. - -Activate with `--printf-args`. - -Supported languages: -- C/C++/ObjC: No -- C#/.Net: No -- Erlang: No -- Hack: No -- Java: Yes -- Python: No - - - -## List of Issue Types - -The following issue types are reported by this checker: -- [CHECKERS_PRINTF_ARGS](/docs/next/all-issue-types#checkers_printf_args) diff --git a/website/docs/checker-pulse.md b/website/docs/checker-pulse.md index 4617972335..22e7ebbd9f 100644 --- a/website/docs/checker-pulse.md +++ b/website/docs/checker-pulse.md @@ -147,6 +147,7 @@ The following issue types are reported by this checker: - [BAD_RECORD_LATENT](/docs/next/all-issue-types#bad_record_latent) - [BAD_RETURN](/docs/next/all-issue-types#bad_return) - [BAD_RETURN_LATENT](/docs/next/all-issue-types#bad_return_latent) +- [COMPARED_TO_NULL_AND_DEREFERENCED](/docs/next/all-issue-types#compared_to_null_and_dereferenced) - [CONFIG_USAGE](/docs/next/all-issue-types#config_usage) - [CONSTANT_ADDRESS_DEREFERENCE](/docs/next/all-issue-types#constant_address_dereference) - [CONSTANT_ADDRESS_DEREFERENCE_LATENT](/docs/next/all-issue-types#constant_address_dereference_latent) @@ -202,6 +203,7 @@ The following issue types are reported by this checker: - [PULSE_UNNECESSARY_COPY_OPTIONAL](/docs/next/all-issue-types#pulse_unnecessary_copy_optional) - [PULSE_UNNECESSARY_COPY_OPTIONAL_CONST](/docs/next/all-issue-types#pulse_unnecessary_copy_optional_const) - [PULSE_UNNECESSARY_COPY_RETURN](/docs/next/all-issue-types#pulse_unnecessary_copy_return) +- [PULSE_UNNECESSARY_COPY_THRIFT_ASSIGNMENT](/docs/next/all-issue-types#pulse_unnecessary_copy_thrift_assignment) - [RETAIN_CYCLE](/docs/next/all-issue-types#retain_cycle) - [RETAIN_CYCLE_NO_WEAK_INFO](/docs/next/all-issue-types#retain_cycle_no_weak_info) - [SENSITIVE_DATA_FLOW](/docs/next/all-issue-types#sensitive_data_flow) diff --git a/website/static/man/next/infer-analyze.1.html b/website/static/man/next/infer-analyze.1.html index 0ef0102049..89af9ad9a4 100644 --- a/website/static/man/next/infer-analyze.1.html +++ b/website/static/man/next/infer-analyze.1.html @@ -273,12 +273,11 @@
Deactivates: fragment-retains-view checker: Detects when Android fragments are not explicitly nullified before becoming -unreachable.
+unreachable. (Conversely: +--fragment-retains-view) -DEPRECATED: Unmaintained
-due to poor precision.
-(Conversely: --fragment-retains-view)
---fragment-retains-view-only
--fragment-retains-view-only
Activates: Enable fragment-retains-view and disable all other checkers @@ -501,24 +500,6 @@
Activates: Also log messages to stdout and stderr (Conversely: --no-print-logs)
---printf-args
- -Activates: printf-args -checker: Detect mismatches between the Java -‘printf‘ format strings and the argument types -For example, this checker will warn about the type error in -‘printf("Hello %d", -"world")‘
- -DEPRECATED:
-Unmaintained.
-(Conversely: --no-printf-args)
---printf-args-only
Activates: Enable -printf-args and disable all other checkers -(Conversely: --no-printf-args-only)
---progress-bar-style { auto | plain | multiline }
@@ -1343,6 +1324,13 @@--pulse-model-return-nonnull-list ++string
+ +Regex of methods that should be +modelled as returning non-null in Pulse
+ +--pulse-model-return-this string
@@ -1509,6 +1497,15 @@--pulse-taint-opaque-files ++path
+ +Specify files that should be +treated as opaque for taint analysis to make sure that +procedure's belonging to these files are always free of any +potential taint flows.
+--pulse-taint-policies json
diff --git a/website/static/man/next/infer-capture.1.html b/website/static/man/next/infer-capture.1.html index 98aa2f0f06..79cfff37aa 100644 --- a/website/static/man/next/infer-capture.1.html +++ b/website/static/man/next/infer-capture.1.html @@ -738,6 +738,13 @@--no-read-java-modules
+ +Deactivates: Read java modules +file using jimage. (Conversely: +--read-java-modules)
+Fields to emit with --issues-tests
@@ -584,6 +588,14 @@--no-suppressions
+ +Deactivates: Suppress infer +issues on source lines matching the @infer-disable +ISSUE_TYPE1, ISSUE_TYPE2, ... and @infer-disable-every +ISSUE_TYPE1, ISSUE_TYPE2, ... keywords. (Conversely: +--suppressions)
+[EXPERIMENTAL; UNSTABLE API] Lineage sinks for taint finding, format -[module:]function/arity.{ret,argN}, comma-separated.
- ---lineage-source -+string
+[module:]function/arity.{ret,argN}, comma-separated. Must be +used with --lineage-source as options to the report +subcommand. + +Will produce a graph
+materializing the flows between the sources
+and the sinks along with a json issues file. The issues file
+will
+contain one trace per sink, exhibiting a shortest path from
+a
+source. The report command will print the filesystem paths
+of the
+files containing those results.
+--lineage-source +string
[EXPERIMENTAL; UNSTABLE API] Lineage sources for taint finding, format [module:]function/arity.{ret,argN}, comma-separated.
+See --lineage-sink for +additional documentation.
+Deactivates: fragment-retains-view checker: Detects when Android fragments are not explicitly nullified before becoming -unreachable.
+unreachable. (Conversely: +--fragment-retains-view) -DEPRECATED: Unmaintained
-due to poor precision.
-(Conversely: --fragment-retains-view)
-See also infer-analyze(1).
+
See also
+infer-analyze(1).
--fragment-retains-view-only
Activates: Enable @@ -1483,7 +1486,7 @@
Fields to emit with --issues-tests
@@ -1647,18 +1650,29 @@[EXPERIMENTAL; UNSTABLE API] Lineage sinks for taint finding, format -[module:]function/arity.{ret,argN}, comma-separated.
- -See also
-infer-report(1).
+[module:]function/arity.{ret,argN}, comma-separated. Must be
+used with --lineage-source as options to the report
+subcommand.
Will produce a graph
+materializing the flows between the sources
+and the sinks along with a json issues file. The issues file
+will
+contain one trace per sink, exhibiting a shortest path from
+a
+source. The report command will print the filesystem paths
+of the
+files containing those results.
+See also infer-report(1).
--lineage-source +string
[EXPERIMENTAL; UNSTABLE API] Lineage sources for taint finding, format [module:]function/arity.{ret,argN}, comma-separated.
-See also
-infer-report(1).
+
See --lineage-sink for
+additional documentation.
+See also infer-report(1).
--lineage-variant-width int
Maximal width of variant types @@ -1973,27 +1987,6 @@
Activates: printf-args -checker: Detect mismatches between the Java -‘printf‘ format strings and the argument types -For example, this checker will warn about the type error in -‘printf("Hello %d", -"world")‘
- -DEPRECATED:
-Unmaintained.
-(Conversely: --no-printf-args)
-See also infer-analyze(1).
---printf-args-only
Activates: Enable -printf-args and disable all other checkers -(Conversely: --no-printf-args-only)
- -See also
-infer-analyze(1).
--procedures
Activates: Print functions and @@ -2276,6 +2269,13 @@
Regex of methods that should be modelled as returning non-null in Pulse
+See also
+infer-analyze(1).
+--pulse-model-return-nonnull-list +string
Regex of methods that should be +modelled as returning non-null in Pulse
+See also
infer-analyze(1).
--pulse-model-return-this string
See also
+infer-analyze(1).
+--pulse-taint-opaque-files +path
Specify files that should be +treated as opaque for taint analysis to make sure that +procedure's belonging to these files are always free of any +potential taint flows.
+See also
infer-analyze(1).
--pulse-taint-policies json
See also
infer-analyze(1).
+--no-read-java-modules
Deactivates: Read java modules +file using jimage. (Conversely: +--read-java-modules)
+ +See also
+infer-capture(1).
--replay-analysis-schedule
Activates: Replay the analysis @@ -3267,6 +3284,16 @@
(Conversely:
--no-struct-as-cpp-class)
See also infer-capture(1).
+--no-suppressions
Deactivates: Suppress infer +issues on source lines matching the @infer-disable +ISSUE_TYPE1, ISSUE_TYPE2, ... and @infer-disable-every +ISSUE_TYPE1, ISSUE_TYPE2, ... keywords. (Conversely: +--suppressions)
+ +See also
+infer-report(1).
--tenv-json file
Path to TEnv json file
diff --git a/website/static/odoc/next/infer/ATDGenerated/Clang_profiler_samples_j/index.html b/website/static/odoc/next/infer/ATDGenerated/Clang_profiler_samples_j/index.html deleted file mode 100644 index ed631507cf..0000000000 --- a/website/static/odoc/next/infer/ATDGenerated/Clang_profiler_samples_j/index.html +++ /dev/null @@ -1,11 +0,0 @@ - -ATDGenerated.Clang_profiler_samples_j
type profiler_sample = Clang_profiler_samples_t.profiler_sample = {
test : string;
native_symbols : native_symbol list;
}
type profiler_samples = Clang_profiler_samples_t.profiler_samples
val write_native_symbol : Stdlib.Buffer.t -> native_symbol -> unit
Output a JSON value of type native_symbol
.
val string_of_native_symbol : ?len:int -> native_symbol -> string
Serialize a value of type native_symbol
into a JSON string.
val read_native_symbol :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- native_symbol
Input JSON data of type native_symbol
.
val native_symbol_of_string : string -> native_symbol
Deserialize JSON data of type native_symbol
.
val write_profiler_sample : Stdlib.Buffer.t -> profiler_sample -> unit
Output a JSON value of type profiler_sample
.
val string_of_profiler_sample : ?len:int -> profiler_sample -> string
Serialize a value of type profiler_sample
into a JSON string.
val read_profiler_sample :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- profiler_sample
Input JSON data of type profiler_sample
.
val profiler_sample_of_string : string -> profiler_sample
Deserialize JSON data of type profiler_sample
.
val write_profiler_samples : Stdlib.Buffer.t -> profiler_samples -> unit
Output a JSON value of type profiler_samples
.
val string_of_profiler_samples : ?len:int -> profiler_samples -> string
Serialize a value of type profiler_samples
into a JSON string.
val read_profiler_samples :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- profiler_samples
Input JSON data of type profiler_samples
.
val profiler_samples_of_string : string -> profiler_samples
Deserialize JSON data of type profiler_samples
.
ATDGenerated.Clang_profiler_samples_t
ATDGenerated.Java_method_decl_j
type java_method_decl = Java_method_decl_t.java_method_decl = {
signature : string option;
unresolved_signature : bool;
method_name : string;
source_file : string;
start_line : int;
end_line : int;
}
type java_method_decls = Java_method_decl_t.java_method_decls
val write_java_method_decl : Stdlib.Buffer.t -> java_method_decl -> unit
Output a JSON value of type java_method_decl
.
val string_of_java_method_decl : ?len:int -> java_method_decl -> string
Serialize a value of type java_method_decl
into a JSON string.
val read_java_method_decl :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- java_method_decl
Input JSON data of type java_method_decl
.
val java_method_decl_of_string : string -> java_method_decl
Deserialize JSON data of type java_method_decl
.
val write_java_method_decls : Stdlib.Buffer.t -> java_method_decls -> unit
Output a JSON value of type java_method_decls
.
val string_of_java_method_decls : ?len:int -> java_method_decls -> string
Serialize a value of type java_method_decls
into a JSON string.
val read_java_method_decls :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- java_method_decls
Input JSON data of type java_method_decls
.
val java_method_decls_of_string : string -> java_method_decls
Deserialize JSON data of type java_method_decls
.
ATDGenerated.Java_method_decl_t
type java_method_decls = java_method_decl list
ATDGenerated.Java_profiler_samples_j
type java_profiler_sample = Java_profiler_samples_t.java_profiler_sample = {
test : string;
methods : sampled_method list;
}
type java_profiler_samples = Java_profiler_samples_t.java_profiler_samples
val write_sampled_method : Stdlib.Buffer.t -> sampled_method -> unit
Output a JSON value of type sampled_method
.
val string_of_sampled_method : ?len:int -> sampled_method -> string
Serialize a value of type sampled_method
into a JSON string.
val read_sampled_method :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- sampled_method
Input JSON data of type sampled_method
.
val sampled_method_of_string : string -> sampled_method
Deserialize JSON data of type sampled_method
.
val write_java_profiler_sample :
- Stdlib.Buffer.t ->
- java_profiler_sample ->
- unit
Output a JSON value of type java_profiler_sample
.
val string_of_java_profiler_sample : ?len:int -> java_profiler_sample -> string
Serialize a value of type java_profiler_sample
into a JSON string.
val read_java_profiler_sample :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- java_profiler_sample
Input JSON data of type java_profiler_sample
.
val java_profiler_sample_of_string : string -> java_profiler_sample
Deserialize JSON data of type java_profiler_sample
.
val write_java_profiler_samples :
- Stdlib.Buffer.t ->
- java_profiler_samples ->
- unit
Output a JSON value of type java_profiler_samples
.
val string_of_java_profiler_samples :
- ?len:int ->
- java_profiler_samples ->
- string
Serialize a value of type java_profiler_samples
into a JSON string.
val read_java_profiler_samples :
- Yojson.Safe.lexer_state ->
- Stdlib.Lexing.lexbuf ->
- java_profiler_samples
Input JSON data of type java_profiler_samples
.
val java_profiler_samples_of_string : string -> java_profiler_samples
Deserialize JSON data of type java_profiler_samples
.
ATDGenerated.Java_profiler_samples_t
type java_profiler_samples = java_profiler_sample list
type transitive_callee_kind = Jsonbug_t.transitive_callee_kind
val equal_transitive_callee_kind :
transitive_callee_kind ->
transitive_callee_kind ->
- bool
type transitive_callee = Jsonbug_t.transitive_callee = {
callsite_filename : string;
callsite_absolute_position_in_file : int;
caller_name : string;
callsite_relative_position_in_caller : int;
kind : transitive_callee_kind;
resolution : transitive_callee_resolution;
}
val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
type taint_extra = Jsonbug_t.taint_extra = {
taint_source : string option;
taint_sink : string option;
taint_policy_privacy_effect : string option;
tainted_expression : string option;
}
val equal_taint_extra : taint_extra -> taint_extra -> bool
val equal_missed_capture : missed_capture -> missed_capture -> bool
val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
type extra = Jsonbug_t.extra = {
cost_polynomial : string option;
cost_degree : int option;
copy_type : string option;
config_usage_extra : config_usage_extra option;
taint_extra : taint_extra option;
transitive_callees : transitive_callee list;
transitive_missed_captures : missed_capture list;
}
type jsonbug = Jsonbug_t.jsonbug = {
bug_type : string;
qualifier : string;
suggestion : string option;
severity : string;
category : string;
line : int;
column : int;
procedure : string;
procedure_start_line : int;
file : string;
bug_trace : json_trace_item list;
bug_trace_length : int;
bug_trace_max_depth : int;
key : string;
node_key : string option;
hash : string;
dotty : string option;
infer_source_loc : loc option;
bug_type_hum : string;
traceview_id : int option;
censored_reason : string option;
access : string option;
extras : extra option;
}
type report = Jsonbug_t.report
type transitive_callee = Jsonbug_t.transitive_callee = {
callsite_filename : string;
callsite_absolute_position_in_file : int;
caller_name : string;
callsite_relative_position_in_caller : int;
kind : transitive_callee_kind;
resolution : transitive_callee_resolution;
}
val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
type taint_extra = Jsonbug_t.taint_extra = {
taint_source : string option;
taint_sink : string option;
taint_policy_privacy_effect : string option;
tainted_expression : string option;
report_as_issue_type : string option;
report_as_category : string option;
}
val equal_taint_extra : taint_extra -> taint_extra -> bool
val equal_missed_capture : missed_capture -> missed_capture -> bool
val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
type extra = Jsonbug_t.extra = {
cost_polynomial : string option;
cost_degree : int option;
copy_type : string option;
config_usage_extra : config_usage_extra option;
taint_extra : taint_extra option;
transitive_callees : transitive_callee list;
transitive_missed_captures : missed_capture list;
}
type jsonbug = Jsonbug_t.jsonbug = {
bug_type : string;
qualifier : string;
suggestion : string option;
severity : string;
category : string;
line : int;
column : int;
procedure : string;
procedure_start_line : int;
file : string;
bug_trace : json_trace_item list;
bug_trace_length : int;
bug_trace_max_depth : int;
key : string;
node_key : string option;
hash : string;
dotty : string option;
infer_source_loc : loc option;
bug_type_hum : string;
traceview_id : int option;
censored_reason : string option;
access : string option;
extras : extra option;
suppressed : bool;
}
type report = Jsonbug_t.report
val write_transitive_callee_resolution :
Stdlib.Buffer.t ->
transitive_callee_resolution ->
unit
Output a JSON value of type transitive_callee_resolution
.
val string_of_transitive_callee_resolution :
diff --git a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html
index dcfa6d4cf9..cc28d4251f 100644
--- a/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html
+++ b/website/static/odoc/next/infer/ATDGenerated/Jsonbug_t/index.html
@@ -5,4 +5,4 @@
bool
val equal_transitive_callee_kind :
transitive_callee_kind ->
transitive_callee_kind ->
- bool
type transitive_callee = {
callsite_filename : string;
callsite_absolute_position_in_file : int;
caller_name : string;
callsite_relative_position_in_caller : int;
kind : transitive_callee_kind;
resolution : transitive_callee_resolution;
}
val equal_transitive_callee : transitive_callee -> transitive_callee -> bool
val equal_taint_extra : taint_extra -> taint_extra -> bool
val equal_missed_capture : missed_capture -> missed_capture -> bool
val equal_json_trace_item : json_trace_item -> json_trace_item -> bool
val equal_config_usage_extra : config_usage_extra -> config_usage_extra -> bool
type extra = {
cost_polynomial : string option;
cost_degree : int option;
copy_type : string option;
config_usage_extra : config_usage_extra option;
taint_extra : taint_extra option;
transitive_callees : transitive_callee list;
transitive_missed_captures : missed_capture list;
}
type jsonbug = {
bug_type : string;
qualifier : string;
suggestion : string option;
severity : string;
category : string;
line : int;
column : int;
procedure : string;
procedure_start_line : int;
file : string;
bug_trace : json_trace_item list;
bug_trace_length : int;
bug_trace_max_depth : int;
key : string;
node_key : string option;
hash : string;
dotty : string option;
infer_source_loc : loc option;
bug_type_hum : string;
traceview_id : int option;
censored_reason : string option;
access : string option;
extras : extra option;
}
type report = jsonbug list