From 6e37247b7b88c0d2088c8633c8b9c2ec14da83ce Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Tue, 16 Jun 2020 03:21:24 -0700 Subject: [PATCH] make doc-publish Summary: Needed to remove user_documentation for the new CONFIG_CHECK_BETWEEN_MARKERS issue type otherwise it violated the invariant that the corresponding checker should be documented too but its development has just started. Reviewed By: skcho Differential Revision: D22065820 fbshipit-source-id: 4b3a58850 --- infer/src/base/IssueType.ml | 2 +- website/checkers.json | 4 +- website/docs/all-issue-types.md | 602 +++++++++++++++++- .../docs/checker-annotation-reachability.md | 9 + website/docs/checker-biabduction.md | 15 +- website/docs/checker-bufferoverrun.md | 23 + website/docs/checker-class-loads.md | 15 - website/docs/checker-cost.md | 83 +++ website/docs/checker-eradicate.md | 16 +- website/docs/checker-fragment-retains-view.md | 2 +- website/docs/checker-immutable-cast.md | 2 +- .../checker-inefficient-keyset-iterator.md | 6 + website/docs/checker-linters.md | 30 +- website/docs/checker-liveness.md | 2 +- website/docs/checker-printf-args.md | 6 + website/docs/checker-pulse.md | 12 + website/docs/checker-quandary.md | 22 + website/docs/checker-racerd.md | 7 +- website/docs/checker-self-in-block.md | 10 +- website/docs/checker-siof.md | 2 +- website/docs/checker-starvation.md | 7 +- website/docs/checker-uninit.md | 6 + website/static/man/next/infer-analyze.1.html | 28 +- website/static/man/next/infer-capture.1.html | 2 +- website/static/man/next/infer-compile.1.html | 2 +- website/static/man/next/infer-explore.1.html | 2 +- website/static/man/next/infer-help.1.html | 2 +- website/static/man/next/infer-report.1.html | 12 +- .../static/man/next/infer-reportdiff.1.html | 2 +- website/static/man/next/infer-run.1.html | 8 +- website/static/man/next/infer.1.html | 61 +- .../AbstractDomain/TopLiftedUtils/index.html | 2 +- .../next/infer/Absint/Localise/index.html | 2 +- .../TopLiftedUtils/index.html | 2 +- .../next/infer/Absint__Localise/index.html | 2 +- .../Backend/Payloads/Fields/Direct/index.html | 2 +- .../infer/Backend/Payloads/Fields/index.html | 2 +- .../next/infer/Backend/Payloads/index.html | 2 +- .../Fields/Direct/index.html | 2 +- .../infer/Backend__Payloads/Fields/index.html | 2 +- .../next/infer/Backend__Payloads/index.html | 2 +- .../infer/Biabduction/Attribute/index.html | 2 +- .../next/infer/Biabduction/Errdesc/index.html | 2 +- .../infer/Biabduction/Exceptions/index.html | 2 +- .../infer/Biabduction/Tabulation/index.html | 2 +- .../infer/Biabduction__Attribute/index.html | 2 +- .../infer/Biabduction__Errdesc/index.html | 2 +- .../infer/Biabduction__Exceptions/index.html | 2 +- .../infer/Biabduction__Tabulation/index.html | 2 +- .../next/infer/Checkers/ClassLoads/index.html | 2 - .../ClassLoadsDomain/Event/index.html | 2 - .../Checkers/ClassLoadsDomain/index.html | 2 - .../Summary/index.html | 2 + .../ConfigChecksBetweenMarkers/index.html | 2 + .../infer/Checkers/FbGKInteraction/index.html | 2 + .../odoc/next/infer/Checkers/index.html | 2 +- .../infer/Checkers__ClassLoads/index.html | 2 - .../Event/index.html | 2 - .../Checkers__ClassLoadsDomain/index.html | 2 - .../.dune-keep | 0 .../Summary/index.html | 2 + .../index.html | 2 + .../.dune-keep | 0 .../Checkers__FbGKInteraction/index.html | 2 + .../ClangFrontend/Ast_expressions/index.html | 2 +- .../CAddImplicitDeallocImpl/index.html | 2 + .../ClangFrontend/CFrontend_config/index.html | 2 +- .../odoc/next/infer/ClangFrontend/index.html | 2 +- .../ClangFrontend__Ast_expressions/index.html | 2 +- .../.dune-keep | 0 .../index.html | 2 + .../index.html | 2 +- .../odoc/next/infer/IBase/Checker/index.html | 2 +- .../odoc/next/infer/IBase/Config/index.html | 2 +- .../next/infer/IBase/IssueType/index.html | 2 +- .../IBase/ResultsDirEntryName/index.html | 2 +- .../odoc/next/infer/IBase__Checker/index.html | 2 +- .../odoc/next/infer/IBase__Config/index.html | 2 +- .../next/infer/IBase__IssueType/index.html | 2 +- .../IBase__ResultsDirEntryName/index.html | 2 +- .../odoc/next/infer/IR/Procname/index.html | 2 +- .../odoc/next/infer/IR__Procname/index.html | 2 +- .../next/infer/Integration/Help/index.html | 2 +- .../infer/Integration/XMLReport/index.html | 2 + .../odoc/next/infer/Integration/index.html | 2 +- .../next/infer/Integration__Help/index.html | 2 +- .../infer/Integration__XMLReport/.dune-keep | 0 .../infer/Integration__XMLReport/index.html | 2 + 88 files changed, 945 insertions(+), 163 deletions(-) delete mode 100644 website/docs/checker-class-loads.md delete mode 100644 website/static/odoc/next/infer/Checkers/ClassLoads/index.html delete mode 100644 website/static/odoc/next/infer/Checkers/ClassLoadsDomain/Event/index.html delete mode 100644 website/static/odoc/next/infer/Checkers/ClassLoadsDomain/index.html create mode 100644 website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/Summary/index.html create mode 100644 website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/index.html create mode 100644 website/static/odoc/next/infer/Checkers/FbGKInteraction/index.html delete mode 100644 website/static/odoc/next/infer/Checkers__ClassLoads/index.html delete mode 100644 website/static/odoc/next/infer/Checkers__ClassLoadsDomain/Event/index.html delete mode 100644 website/static/odoc/next/infer/Checkers__ClassLoadsDomain/index.html rename website/static/odoc/next/infer/{Checkers__ClassLoads => Checkers__ConfigChecksBetweenMarkers}/.dune-keep (100%) create mode 100644 website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/Summary/index.html create mode 100644 website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/index.html rename website/static/odoc/next/infer/{Checkers__ClassLoadsDomain => Checkers__FbGKInteraction}/.dune-keep (100%) create mode 100644 website/static/odoc/next/infer/Checkers__FbGKInteraction/index.html create mode 100644 website/static/odoc/next/infer/ClangFrontend/CAddImplicitDeallocImpl/index.html create mode 100644 website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/.dune-keep create mode 100644 website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/index.html create mode 100644 website/static/odoc/next/infer/Integration/XMLReport/index.html create mode 100644 website/static/odoc/next/infer/Integration__XMLReport/.dune-keep create mode 100644 website/static/odoc/next/infer/Integration__XMLReport/index.html diff --git a/infer/src/base/IssueType.ml b/infer/src/base/IssueType.ml index 1b1833c1c..dc48846b3 100644 --- a/infer/src/base/IssueType.ml +++ b/infer/src/base/IssueType.ml @@ -409,10 +409,10 @@ let condition_always_true = ~user_documentation:"A condition expression is **always** evaluated to true." +(* ~user_documentation:"A config checking is done between a marker's start and end" *) let config_checks_between_markers = register_from_string ~enabled:false ~id:"CONFIG_CHECKS_BETWEEN_MARKERS" Advice ConfigChecksBetweenMarkers - ~user_documentation:"A config checking is done between a marker's start and end" let constant_address_dereference = diff --git a/website/checkers.json b/website/checkers.json index 29ececc28..9d070b0f5 100644 --- a/website/checkers.json +++ b/website/checkers.json @@ -3,8 +3,8 @@ "This is a @generated file, run `make doc-publish` from the root of the infer repository to generate it", "doc_entries": [ "all-issue-types", "checker-annotation-reachability", - "checker-biabduction", "checker-bufferoverrun", "checker-class-loads", - "checker-cost", "checker-eradicate", "checker-fragment-retains-view", + "checker-biabduction", "checker-bufferoverrun", "checker-cost", + "checker-eradicate", "checker-fragment-retains-view", "checker-immutable-cast", "checker-inefficient-keyset-iterator", "checker-linters", "checker-litho-required-props", "checker-liveness", "checker-loop-hoisting", "checker-printf-args", "checker-pulse", diff --git a/website/docs/all-issue-types.md b/website/docs/all-issue-types.md index fe8df9a41..21c48ac48 100644 --- a/website/docs/all-issue-types.md +++ b/website/docs/all-issue-types.md @@ -33,6 +33,95 @@ integer pointed to by `n` is nonzero (e.g., she may have meant to call an accessor like `[n intValue]` instead). Infer will ask the programmer explicitly compare `n` to `nil` or call an accessor to clarify her intention. +## BUFFER_OVERRUN_L1 + +Reported as "Buffer Overrun L1" by [bufferoverrun](checker-bufferoverrun.md). + +Buffer overrun reports fall into several "buckets" corresponding to the expected precision of the +report. The higher the number, the more likely it is to be a false positive. + +* `L1`: The most faithful report, when it *must* be unsafe. For example, array size: `[5,5]`, + offset: `[3,3]`. + +* `L2`: Less faithful report than `L1`, when it *may* be unsafe. For example, array size:`[5,5]`, + offset: `[0,5]`. Note that the offset may be a safe value in the real execution, i.e. 0, 1, 2, + 3, 4. + +* `L5`: The least faithful report, when there is an interval top. For example, array size: + `[5,5]`, offset: `[-oo,+oo]`. + +* `L4`: More faithful report than `L5`, when there is an infinity value. For example, array size: + `[5,5]`, offset: `[0, +oo]`. + +* `L3`: The reports that are not included in the above cases. + +Other than them, there are some specific-purpose buffer overrun reports as follows. + +* `R2`: An array access is unsafe by *risky* array values from `strndup`. For example, suppose + there is a `strndup` call as follows. + + ```c + char* s1 = (char*)malloc(sizeof(char) * size); + for (int i = 0; i < size; i++) { + s1[i] = 'a'; + } + s1[5] = '\0'; + char* s2 = strndup(s1, size - 1); + s2[size - 1] = 'a'; + ``` + + Even if the second parameter of `strndup` is `size - 1`, the length of `s2` can be shorter than + `size` if there is the null character in the middle of `s1`. + +* `S2`: An array access is unsafe by symbolic values. For example, array size: `[n,n]`, offset + `[n,+oo]`. + +* `T1`: An array access is unsafe by tainted external values. This is experimental and will be + removed sooner or later. + +* `U5`: An array access is unsafe by unknown values, which are usually from unknown function + calls. + +## BUFFER_OVERRUN_L2 + +Reported as "Buffer Overrun L2" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_L3 + +Reported as "Buffer Overrun L3" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_L4 + +Reported as "Buffer Overrun L4" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_L5 + +Reported as "Buffer Overrun L5" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_R2 + +Reported as "Buffer Overrun R2" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_S2 + +Reported as "Buffer Overrun S2" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_T1 + +Reported as "Buffer Overrun T1" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) +## BUFFER_OVERRUN_U5 + +Reported as "Buffer Overrun U5" by [bufferoverrun](checker-bufferoverrun.md). + +See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## CAPTURED_STRONG_SELF Reported as "Captured strongSelf" by [self-in-block](checker-self-in-block.md). @@ -46,6 +135,68 @@ This will happen in one of two cases generally: local variable to the block. If `strongSelf` is used in the inside block, then it's not a local variable anymore, but a captured variable. +## CHECKERS_ALLOCATES_MEMORY + +Reported as "Allocates Memory" by [annotation-reachability](checker-annotation-reachability.md). + +A method annotated with `@NoAllocation` transitively calls `new`. + +Example: + +```java +class C implements I { + @NoAllocation + void directlyAllocatingMethod() { + new Object(); + } +} +``` + +## CHECKERS_ANNOTATION_REACHABILITY_ERROR + +Reported as "Annotation Reachability Error" by [annotation-reachability](checker-annotation-reachability.md). + +A method annotated with an annotation `@A` transitively calls a method annotated `@B` where the combination of annotations is forbidden (for example, `@UiThread` calling `@WorkerThread`). + +## CHECKERS_CALLS_EXPENSIVE_METHOD + +Reported as "Expensive Method Called" by [annotation-reachability](checker-annotation-reachability.md). + +A method annotated with `@PerformanceCritical` transitively calls a method annotated `@Expensive`. + +Example: + +```java +class C { + @PerformanceCritical + void perfCritical() { + expensive(); + } + + @Expensive + void expensive() {} +} +``` + +## CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED + +Reported as "Expensive Overrides Unannotated" by [annotation-reachability](checker-annotation-reachability.md). + +A method annotated with `@Expensive` overrides an un-annotated method. + +Example: + +```java +interface I { + void foo(); +} + +class A implements I { + @Expensive + public void foo() {} +} +``` + ## CHECKERS_FRAGMENT_RETAINS_VIEW Reported as "Fragment Retains View" by [fragment-retains-view](checker-fragment-retains-view.md). @@ -80,6 +231,20 @@ list e.g. by adding elements. Action: you can change the return type to be immutable, or make a copy of the collection so that it can be modified. +## CHECKERS_PRINTF_ARGS + +Reported as "Checkers Printf Args" by [printf-args](checker-printf-args.md). + +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. + ## COMPONENT_FACTORY_FUNCTION Reported as "Component Factory Function" by [linters](checker-linters.md). @@ -101,6 +266,37 @@ Reported as "Component With Unconventional Superclass" by [linters](checker-lint [Doc in ComponentKit page](http://componentkit.org/docs/never-subclass-components) +## CONDITION_ALWAYS_FALSE + +Reported as "Condition Always False" by [bufferoverrun](checker-bufferoverrun.md). + +A condition expression is **always** evaluated to false. +## CONDITION_ALWAYS_TRUE + +Reported as "Condition Always True" by [bufferoverrun](checker-bufferoverrun.md). + +A condition expression is **always** evaluated to true. +## CONSTANT_ADDRESS_DEREFERENCE + +Reported as "Constant Address Dereference" by [pulse](checker-pulse.md). + +This is reported when an address obtained via a non-zero constant is +dereferenced. If the address is zero then +[`NULLPTR_DEREFERENCE`](#nullptr_dereference) is reported instead. + +For example, `int *p = (int *) 123; *p = 42;` generates this issue +type. + +## CREATE_INTENT_FROM_URI + +Reported as "Create Intent From Uri" by [quandary](checker-quandary.md). + +Create an intent/start a component using a (possibly user-controlled) URI. may or may not be an issue depending on where the URI comes from. +## CROSS_SITE_SCRIPTING + +Reported as "Cross Site Scripting" by [quandary](checker-quandary.md). + +Untrusted data flows into HTML; XSS risk. ## CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK Reported as "Cxx Reference Captured In Objc Block" by [linters](checker-linters.md). @@ -526,6 +722,60 @@ the annotations of any method called directly by the current method, if relevant. If the annotations are correct, you can remove the @Nullable annotation. +## EXECUTION_TIME_COMPLEXITY_INCREASE + +Reported as "Execution Time Complexity Increase" by [cost](checker-cost.md). + +Infer reports this issue when the execution time complexity of a +program increases in degree: e.g. from constant to linear or from +logarithmic to quadratic. This issue type is only reported in +differential mode: i.e when we are comparing the analysis results of +two runs of infer on a file. + + + +## EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD + +Reported as "Execution Time Complexity Increase Ui Thread" by [cost](checker-cost.md). + +Infer reports this issue when the execution time complexity of the procedure increases in degree **and** the procedure runs on the UI (main) thread. + +Infer considers a method as running on the UI thread whenever: + +- The method, one of its overrides, its class, or an ancestral class, is + annotated with `@UiThread`. +- The method, or one of its overrides is annotated with `@OnEvent`, `@OnClick`, + etc. +- The method or its callees call a `Litho.ThreadUtils` method such as + `assertMainThread`. + + +## EXECUTION_TIME_UNREACHABLE_AT_EXIT + +Reported as "Execution Time Unreachable At Exit" by [cost](checker-cost.md). + +This issue type indicates that the program's execution doesn't reach +the exit node. Hence, we cannot compute a static bound for the +procedure. + + +Examples: +```java +void exit_unreachable() { + exit(0); // modeled as unreachable +} + + +void infeasible_path_unreachable() { + Preconditions.checkState(false); // like assert false, state pruned to bottom +} +``` + +## EXPOSED_INSECURE_INTENT_HANDLING + +Reported as "Exposed Insecure Intent Handling" by [quandary](checker-quandary.md). + +Undocumented. ## GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL Reported as "Global Variable Initialized With Function Or Method Call" by [linters](checker-linters.md). @@ -535,6 +785,160 @@ method or function call. The warning wants to make you aware that some functions are expensive. As the global variables are initialized before main() is called, these initializations can slow down the start-up time of an app. +## GUARDEDBY_VIOLATION + +Reported as "GuardedBy Violation" by [racerd](checker-racerd.md). + +A field annotated with `@GuardedBy` is being accessed by a call-chain that starts at a non-private method without synchronization. + +Example: + +```java +class C { + @GuardedBy("this") + String f; + + void foo(String s) { + f = s; // unprotected access here + } +} +``` + +Action: Protect the offending access by acquiring the lock indicated by the `@GuardedBy(...)`. + +## INEFFICIENT_KEYSET_ITERATOR + +Reported as "Inefficient Keyset Iterator" by [inefficient-keyset-iterator](checker-inefficient-keyset-iterator.md). + +This issue is raised when +- iterating over a HashMap with `ketSet()` iterator +- looking up the key each time + +Instead, it is more efficient to iterate over the loop with `entrySet` which returns key-vaue pairs and gets rid of the hashMap lookup. + For instance, we would raise an issue for the following program: + +```java +void inefficient_loop_bad(HashMap testMap) { + for (String key : testMap.keySet()) { + Integer value = testMap.get(key); // extra look-up cost + foo(key, value); + } +} +``` + +Instead, it is more efficient to have: +```java +void efficient_loop_ok(HashMap testMap) { + for (Map.Entry entry : testMap.entrySet()) { + String key = entry.getKey(); + Integer value = entry.getValue(); + foo(key, value); + } +} +``` + +## INFERBO_ALLOC_IS_BIG + +Reported as "Inferbo Alloc Is Big" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` is passed a large constant value. +## INFERBO_ALLOC_IS_NEGATIVE + +Reported as "Inferbo Alloc Is Negative" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` is called with a negative size. +## INFERBO_ALLOC_IS_ZERO + +Reported as "Inferbo Alloc Is Zero" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` is called with a zero size. +## INFERBO_ALLOC_MAY_BE_BIG + +Reported as "Inferbo Alloc May Be Big" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` *may* be called with a large value. +## INFERBO_ALLOC_MAY_BE_NEGATIVE + +Reported as "Inferbo Alloc May Be Negative" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` *may* be called with a negative value. +## INFERBO_ALLOC_MAY_BE_TAINTED + +Reported as "Inferbo Alloc May Be Tainted" by [bufferoverrun](checker-bufferoverrun.md). + +`malloc` *may* be called with a tainted value from external sources. This is experimental and will be removed sooner or later. +## INFINITE_EXECUTION_TIME + +Reported as "Infinite Execution Time" by [cost](checker-cost.md). + +This warning indicates that Infer was not able to determine a static +upper bound on the execution cost of the procedure. By default, this +issue type is disabled. + + +For instance, Inferbo's interval analysis is limited to affine +expressions. Hence, we can't statically estimate an upper bound on the +below example and obtain T(unknown) cost: +```java +// Expected: square root(x), got T +void square_root_FP(int x) { + int i = 0; + while (i * i < x) { + i++; + } +} +``` + +Consequently, we report an `INFINITE_EXECUTION_TIME`, corresponding to the biggest bound T. + +## INSECURE_INTENT_HANDLING + +Reported as "Insecure Intent Handling" by [quandary](checker-quandary.md). + +Undocumented. +## INTEGER_OVERFLOW_L1 + +Reported as "Integer Overflow L1" by [bufferoverrun](checker-bufferoverrun.md). + +Integer overflows reports fall into several "buckets" corresponding to the expected precision of the +report. The higher the number, the more likely it is to be a false positive. + +* `L1`: The most faithful report, when it *must* be unsafe. For example, + `[2147483647,2147483647] + [1,1]` in 32-bit signed integer type. + +* `L2`: Less faithful report than `L1`, when it *may* be unsafe. For example, + `[2147483647,2147483647] + [0,1]` in 32-bit signed integer type. Note that the integer of RHS + can be 0, which is safe. + +* `L5`: The reports that are not included in the above cases. + +Other than them, there as some specific-purpose buffer overrun reports as follows. + +* `R2`: A binary integer operation is unsafe by *risky* return values from `strndup`. + +* `U5`: A binary integer operation is unsafe by unknown values, which are usually from unknown + function calls. + +## INTEGER_OVERFLOW_L2 + +Reported as "Integer Overflow L2" by [bufferoverrun](checker-bufferoverrun.md). + +See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) +## INTEGER_OVERFLOW_L5 + +Reported as "Integer Overflow L5" by [bufferoverrun](checker-bufferoverrun.md). + +See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) +## INTEGER_OVERFLOW_R2 + +Reported as "Integer Overflow R2" by [bufferoverrun](checker-bufferoverrun.md). + +See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) +## INTEGER_OVERFLOW_U5 + +Reported as "Integer Overflow U5" by [bufferoverrun](checker-bufferoverrun.md). + +See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) ## INTERFACE_NOT_THREAD_SAFE Reported as "Interface Not Thread Safe" by [racerd](checker-racerd.md). @@ -565,6 +969,34 @@ parameter is `nil`. For example: Possible solutions are adding a check for `nil`, or making sure that the method is not called with `nil`. +## JAVASCRIPT_INJECTION + +Reported as "Javascript Injection" by [quandary](checker-quandary.md). + +Untrusted data flows into JavaScript. +## LOCKLESS_VIOLATION + +Reported as "Lockless Violation" by [starvation](checker-starvation.md). + +A method implements an interface signature annotated with `@Lockless` but which transitively acquires a lock. + +Example: + +```java +Interface I { + @Lockless + public void no_lock(); +} + +class C implements I { + private synchronized do_lock() {} + + public void no_lock() { // this method should not acquire any locks + do_lock(); + } +} +``` + ## LOCK_CONSISTENCY_VIOLATION Reported as "Lock Consistency Violation" by [racerd](checker-racerd.md). @@ -590,9 +1022,14 @@ container (an array, a vector, etc). Infer considers a method as private if it's not exported in the header-file interface. +## LOGGING_PRIVATE_DATA + +Reported as "Logging Private Data" by [quandary](checker-quandary.md). + +Undocumented. ## MEMORY_LEAK -Reported as "Memory Leak" by [biabduction](checker-biabduction.md). +Reported as "Memory Leak" by [pulse](checker-pulse.md). ### Memory leak in C @@ -644,6 +1081,11 @@ Reported as "Mutable Local Variable In Component File" by [linters](checker-lint [Doc in ComponentKit page](http://componentkit.org/docs/avoid-local-variables) +## NULLPTR_DEREFERENCE + +Reported as "Nullptr Dereference" by [pulse](checker-pulse.md). + +See [NULL_DEREFERENCE](#null_dereference). ## NULL_DEREFERENCE Reported as "Null Dereference" by [biabduction](checker-biabduction.md). @@ -804,6 +1246,11 @@ An example of such variadic methods is In this example, if `str` is `nil` then an array `@[@"aaa"]` of size 1 will be created, and not an array `@[@"aaa", str, @"bbb"]` of size 3 as expected. +## QUANDARY_TAINT_ERROR + +Reported as "Taint Error" by [quandary](checker-quandary.md). + +Generic taint error when nothing else fits. ## REGISTERED_OBSERVER_BEING_DEALLOCATED Reported as "Registered Observer Being Deallocated" by [linters](checker-linters.md). @@ -1127,6 +1574,44 @@ hierarchy: @end ``` +## SHELL_INJECTION + +Reported as "Shell Injection" by [quandary](checker-quandary.md). + +Environment variable or file data flowing to shell. +## SHELL_INJECTION_RISK + +Reported as "Shell Injection Risk" by [quandary](checker-quandary.md). + +Code injection if the caller of the endpoint doesn't sanitize on its end. +## SQL_INJECTION + +Reported as "Sql Injection" by [quandary](checker-quandary.md). + +Untrusted and unescaped data flows to SQL. +## SQL_INJECTION_RISK + +Reported as "Sql Injection Risk" by [quandary](checker-quandary.md). + +Untrusted and unescaped data flows to SQL. +## STACK_VARIABLE_ADDRESS_ESCAPE + +Reported as "Stack Variable Address Escape" by [pulse](checker-pulse.md). + +Reported when an address pointing into the stack of the current +function will escape to its calling context. Such addresses will +become invalid by the time the function actually returns so are +potentially dangerous. + +For example, directly returning a pointer to a local variable: + +```C +int* foo() { + int x = 42; + return &x; // <-- warn here that "&x" will escape +} +``` + ## STARVATION Reported as "UI Thread Starvation" by [starvation](checker-starvation.md). @@ -1362,6 +1847,121 @@ if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_9_0) { } ``` +## UNINITIALIZED_VALUE + +Reported as "Uninitialized Value" by [uninit](checker-uninit.md). + +A value is read before it has been initialized. For example, in C: + +```C +struct coordinates { + int x; + int y; +}; + +void foo() { + struct coordinates c; + c.x = 42; + c.y++; // uninitialized value c.y! + + int z; + if (z == 0) { // uninitialized value z! + // something + } +} +``` + +## UNREACHABLE_CODE + +Reported as "Unreachable Code" by [bufferoverrun](checker-bufferoverrun.md). + +A program point is unreachable. +## UNTRUSTED_BUFFER_ACCESS + +Reported as "Untrusted Buffer Access" by [quandary](checker-quandary.md). + +Untrusted data of any kind flowing to buffer. +## UNTRUSTED_DESERIALIZATION + +Reported as "Untrusted Deserialization" by [quandary](checker-quandary.md). + +User-controlled deserialization. +## UNTRUSTED_DESERIALIZATION_RISK + +Reported as "Untrusted Deserialization Risk" by [quandary](checker-quandary.md). + +User-controlled deserialization +## UNTRUSTED_ENVIRONMENT_CHANGE_RISK + +Reported as "Untrusted Environment Change Risk" by [quandary](checker-quandary.md). + +User-controlled environment mutation. +## UNTRUSTED_FILE + +Reported as "Untrusted File" by [quandary](checker-quandary.md). + +User-controlled file creation; may be vulnerable to path traversal and more. +## UNTRUSTED_FILE_RISK + +Reported as "Untrusted File Risk" by [quandary](checker-quandary.md). + +User-controlled file creation; may be vulnerable to path traversal and more. +## UNTRUSTED_HEAP_ALLOCATION + +Reported as "Untrusted Heap Allocation" by [quandary](checker-quandary.md). + +Untrusted data of any kind flowing to heap allocation. this can cause crashes or DOS. +## UNTRUSTED_INTENT_CREATION + +Reported as "Untrusted Intent Creation" by [quandary](checker-quandary.md). + +Creating an Intent from user-controlled data. +## UNTRUSTED_URL_RISK + +Reported as "Untrusted Url Risk" by [quandary](checker-quandary.md). + +Untrusted flag, environment variable, or file data flowing to URL. +## UNTRUSTED_VARIABLE_LENGTH_ARRAY + +Reported as "Untrusted Variable Length Array" by [quandary](checker-quandary.md). + +Untrusted data of any kind flowing to stack buffer allocation. Trying to allocate a stack buffer that's too large will cause a stack overflow. +## USER_CONTROLLED_SQL_RISK + +Reported as "User Controlled Sql Risk" by [quandary](checker-quandary.md). + +Untrusted data flows to SQL (no injection risk). +## USE_AFTER_DELETE + +Reported as "Use After Delete" by [pulse](checker-pulse.md). + +An address that was invalidated by a call to `delete` in C++ is dereferenced. + +## USE_AFTER_FREE + +Reported as "Use After Free" by [pulse](checker-pulse.md). + +An address that was invalidated by a call to `free` in C is dereferenced. + +## USE_AFTER_LIFETIME + +Reported as "Use After Lifetime" by [pulse](checker-pulse.md). + +The lifetime of an object has ended but that object is being +accessed. For example, the address of a variable holding a C++ object +is accessed after the variable has gone out of scope: + +```C++ +void foo() { + X* p; + { // new scope + X x = X(); + p = &x; + } // x has gone out of scope + p->method(); // ERROR: you should not access *p after x has gone out of scope +} +``` + ## WEAK_SELF_IN_NO_ESCAPE_BLOCK Reported as "Weak Self In No Escape Block" by [self-in-block](checker-self-in-block.md). diff --git a/website/docs/checker-annotation-reachability.md b/website/docs/checker-annotation-reachability.md index 6f43b6223..1f0405ff0 100644 --- a/website/docs/checker-annotation-reachability.md +++ b/website/docs/checker-annotation-reachability.md @@ -11,3 +11,12 @@ Supported languages: - C/C++/ObjC: Yes - Java: Yes + + +## List of Issue Types + +The following issue types are reported by this checker: +- [CHECKERS_ALLOCATES_MEMORY](all-issue-types#checkers_allocates_memory) +- [CHECKERS_ANNOTATION_REACHABILITY_ERROR](all-issue-types#checkers_annotation_reachability_error) +- [CHECKERS_CALLS_EXPENSIVE_METHOD](all-issue-types#checkers_calls_expensive_method) +- [CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED](all-issue-types#checkers_expensive_overrides_unannotated) diff --git a/website/docs/checker-biabduction.md b/website/docs/checker-biabduction.md index 2bafb9196..a9a785abe 100644 --- a/website/docs/checker-biabduction.md +++ b/website/docs/checker-biabduction.md @@ -16,11 +16,10 @@ Read more about its foundations in the [Separation Logic and Biabduction page](s ## List of Issue Types The following issue types are reported by this checker: -- [EMPTY_VECTOR_ACCESS](all-issue-types.md#empty_vector_access) -- [IVAR_NOT_NULL_CHECKED](all-issue-types.md#ivar_not_null_checked) -- [MEMORY_LEAK](all-issue-types.md#memory_leak) -- [NULL_DEREFERENCE](all-issue-types.md#null_dereference) -- [PARAMETER_NOT_NULL_CHECKED](all-issue-types.md#parameter_not_null_checked) -- [PREMATURE_NIL_TERMINATION_ARGUMENT](all-issue-types.md#premature_nil_termination_argument) -- [RESOURCE_LEAK](all-issue-types.md#resource_leak) -- [RETAIN_CYCLE](all-issue-types.md#retain_cycle) +- [EMPTY_VECTOR_ACCESS](all-issue-types#empty_vector_access) +- [IVAR_NOT_NULL_CHECKED](all-issue-types#ivar_not_null_checked) +- [NULL_DEREFERENCE](all-issue-types#null_dereference) +- [PARAMETER_NOT_NULL_CHECKED](all-issue-types#parameter_not_null_checked) +- [PREMATURE_NIL_TERMINATION_ARGUMENT](all-issue-types#premature_nil_termination_argument) +- [RESOURCE_LEAK](all-issue-types#resource_leak) +- [RETAIN_CYCLE](all-issue-types#retain_cycle) diff --git a/website/docs/checker-bufferoverrun.md b/website/docs/checker-bufferoverrun.md index 35ceafdcc..09ce61866 100644 --- a/website/docs/checker-bufferoverrun.md +++ b/website/docs/checker-bufferoverrun.md @@ -16,3 +16,26 @@ You can read about its origins in this [blog post](https://research.fb.com/infer ## List of Issue Types The following issue types are reported by this checker: +- [BUFFER_OVERRUN_L1](all-issue-types#buffer_overrun_l1) +- [BUFFER_OVERRUN_L2](all-issue-types#buffer_overrun_l2) +- [BUFFER_OVERRUN_L3](all-issue-types#buffer_overrun_l3) +- [BUFFER_OVERRUN_L4](all-issue-types#buffer_overrun_l4) +- [BUFFER_OVERRUN_L5](all-issue-types#buffer_overrun_l5) +- [BUFFER_OVERRUN_R2](all-issue-types#buffer_overrun_r2) +- [BUFFER_OVERRUN_S2](all-issue-types#buffer_overrun_s2) +- [BUFFER_OVERRUN_T1](all-issue-types#buffer_overrun_t1) +- [BUFFER_OVERRUN_U5](all-issue-types#buffer_overrun_u5) +- [CONDITION_ALWAYS_FALSE](all-issue-types#condition_always_false) +- [CONDITION_ALWAYS_TRUE](all-issue-types#condition_always_true) +- [INFERBO_ALLOC_IS_BIG](all-issue-types#inferbo_alloc_is_big) +- [INFERBO_ALLOC_IS_NEGATIVE](all-issue-types#inferbo_alloc_is_negative) +- [INFERBO_ALLOC_IS_ZERO](all-issue-types#inferbo_alloc_is_zero) +- [INFERBO_ALLOC_MAY_BE_BIG](all-issue-types#inferbo_alloc_may_be_big) +- [INFERBO_ALLOC_MAY_BE_NEGATIVE](all-issue-types#inferbo_alloc_may_be_negative) +- [INFERBO_ALLOC_MAY_BE_TAINTED](all-issue-types#inferbo_alloc_may_be_tainted) +- [INTEGER_OVERFLOW_L1](all-issue-types#integer_overflow_l1) +- [INTEGER_OVERFLOW_L2](all-issue-types#integer_overflow_l2) +- [INTEGER_OVERFLOW_L5](all-issue-types#integer_overflow_l5) +- [INTEGER_OVERFLOW_R2](all-issue-types#integer_overflow_r2) +- [INTEGER_OVERFLOW_U5](all-issue-types#integer_overflow_u5) +- [UNREACHABLE_CODE](all-issue-types#unreachable_code) diff --git a/website/docs/checker-class-loads.md b/website/docs/checker-class-loads.md deleted file mode 100644 index afb6774e6..000000000 --- a/website/docs/checker-class-loads.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Class loading analysis" -description: "Compute set of Java classes loaded." ---- - -Compute set of Java classes loaded. - -**\*\*\*DEPRECATED\*\*\*** Unmaintained prototype. - -Activate with `--class-loads`. - -Supported languages: -- C/C++/ObjC: No -- Java: Yes - diff --git a/website/docs/checker-cost.md b/website/docs/checker-cost.md index 9de164069..2d42999b8 100644 --- a/website/docs/checker-cost.md +++ b/website/docs/checker-cost.md @@ -11,3 +11,86 @@ Supported languages: - C/C++/ObjC: Yes - Java: Yes +Cost analysis statically estimates an upper bound on the worst-case execution cost of a program (WCET). This page gives an overview of how the analysis works for *Java* code. The analyser also has limited support for C/C++ and Objective-C. + +To run the analysis, you can use run `infer --cost` (which will run cost analysis along with other +analyses that are run by default) or `infer --cost-only` (which will only run cost analysis). + +For example, the command `infer --cost-only -- javac File.java` will run +cost analysis on File.java. + + +## How the analysis works + + +Most ideas behind this analysis is based on Stefan Bydge's PhD thesis [Static WCET Analysis based on Abstract Interpretation and Counting of Elements](https://www.semanticscholar.org/paper/Static-WCET-Analysis-Based-on-Abstract-and-Counting-Bygde/ee5157164d497725c1f42dc6c475a59a87c99957). + +The analysis computes two things for each node in the CFG: +- the cost of its instructions, i.e. how much one execution of this node costs, +- how many times it can be executed. + +The total cost of the node is the scalar product of these two vectors. Then, these are passed to a constraint solver that computes the execution cost of the procedure based on the incoming/outgoing edges. + + +At a high level, the analysis has three steps: +- Choose control variables that allude to "how many times a loop may iterate". +- Get abstract ranges of the control variables from [InferBO](checker-bufferoverrun) (a numerical analysis that infers symbolic intervals) +- Construct complexity polynomials for loops and functions by via a constraint solving algorithm. + + + +## Examples + +Infer’s cost analysis statically estimates the execution cost of a +program without running the code. For instance, assume that we had the +following program: + +```java +void loop(ArrayList list){ + for (int i = 0; i <= list.size(); i++){ + } +} +``` + +For this program, Infer statically infers a polynomial (e.g. `8|list|+16`) for the execution cost of this program by giving each instruction in Infer's intermediate language a symbolic cost (where `|.|` refers to the length of a list). Here---overlooking the actual constants---the analysis infers that this program’s asymptotic complexity is `O(|list|)`, that is loop is linear in the size of its input list. Then, at diff time, if a developer modifies this code to, + +```java +void loop(ArrayList list){ + for (int i = 0; i <= list.size(); i++){ + foo(i); // newly added function call + } +} +``` + +where `foo` has a linear cost in its parameter, then Infer automatically detects that the complexity of loop has increased from `O(|list|)` to `O(|list|^2)` and then reports an [`EXECUTION_TIME_COMPLEXITY_INCREASE`](execution_time_complexity_increase) issue. + + + +Unlike other Infer analyses (which report found issues/bugs when running infer once), cost analysis only reports an issue for differential analysis (i.e. when comparing the analysis results on the original and the modified files). Instead, infer writes the execution cost of the program into `infer-out/costs-report.json` file. For each procedure, `costs-report.json` includes the actual polynomial (for the exection cost) along with the degree of the polynomial, the procedure name, line number etc. + +Differential cost analysis in action: +- first run infer's cost analysis on `File.java` and rename `costs-report.json` (which is in `/infer-out`) to `previous-costs-report.json` +- modify the function as shown above +- re-run infer on `File.java` and rename `costs-report.json` to `current-costs-report.json` +- run `infer reportdiff --costs-current current-costs-report.json --costs-previous current-costs-report`. +- Inspect `infer-out/differential/introduced.json` to see the newly found complexity increase issue(s). + + +## Limitations + +There are a number of known limitations to the design of the static cost analysis: + +- InferBo's intervals are limited to affine expressions, not full-blown polynomials. Hence, we can automatically infer bounds involving square roots. + +- We do not handle recursion. + +- If the execution cost of a program depends on an unknown call (e.g. an unmodeled library calls), we can't compute a static upper bound and return T (unknown cost). + + +## List of Issue Types + +The following issue types are reported by this checker: +- [EXECUTION_TIME_COMPLEXITY_INCREASE](all-issue-types#execution_time_complexity_increase) +- [EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD](all-issue-types#execution_time_complexity_increase_ui_thread) +- [EXECUTION_TIME_UNREACHABLE_AT_EXIT](all-issue-types#execution_time_unreachable_at_exit) +- [INFINITE_EXECUTION_TIME](all-issue-types#infinite_execution_time) diff --git a/website/docs/checker-eradicate.md b/website/docs/checker-eradicate.md index 898ee164d..ca0bee738 100644 --- a/website/docs/checker-eradicate.md +++ b/website/docs/checker-eradicate.md @@ -91,11 +91,11 @@ class C { ## List of Issue Types The following issue types are reported by this checker: -- [ERADICATE_CONDITION_REDUNDANT](all-issue-types.md#eradicate_condition_redundant) -- [ERADICATE_FIELD_NOT_INITIALIZED](all-issue-types.md#eradicate_field_not_initialized) -- [ERADICATE_FIELD_NOT_NULLABLE](all-issue-types.md#eradicate_field_not_nullable) -- [ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION](all-issue-types.md#eradicate_inconsistent_subclass_parameter_annotation) -- [ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION](all-issue-types.md#eradicate_inconsistent_subclass_return_annotation) -- [ERADICATE_PARAMETER_NOT_NULLABLE](all-issue-types.md#eradicate_parameter_not_nullable) -- [ERADICATE_RETURN_NOT_NULLABLE](all-issue-types.md#eradicate_return_not_nullable) -- [ERADICATE_RETURN_OVER_ANNOTATED](all-issue-types.md#eradicate_return_over_annotated) +- [ERADICATE_CONDITION_REDUNDANT](all-issue-types#eradicate_condition_redundant) +- [ERADICATE_FIELD_NOT_INITIALIZED](all-issue-types#eradicate_field_not_initialized) +- [ERADICATE_FIELD_NOT_NULLABLE](all-issue-types#eradicate_field_not_nullable) +- [ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION](all-issue-types#eradicate_inconsistent_subclass_parameter_annotation) +- [ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION](all-issue-types#eradicate_inconsistent_subclass_return_annotation) +- [ERADICATE_PARAMETER_NOT_NULLABLE](all-issue-types#eradicate_parameter_not_nullable) +- [ERADICATE_RETURN_NOT_NULLABLE](all-issue-types#eradicate_return_not_nullable) +- [ERADICATE_RETURN_OVER_ANNOTATED](all-issue-types#eradicate_return_over_annotated) diff --git a/website/docs/checker-fragment-retains-view.md b/website/docs/checker-fragment-retains-view.md index 80a0e35bf..97ce217aa 100644 --- a/website/docs/checker-fragment-retains-view.md +++ b/website/docs/checker-fragment-retains-view.md @@ -18,4 +18,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_FRAGMENT_RETAINS_VIEW](all-issue-types.md#checkers_fragment_retains_view) +- [CHECKERS_FRAGMENT_RETAINS_VIEW](all-issue-types#checkers_fragment_retains_view) diff --git a/website/docs/checker-immutable-cast.md b/website/docs/checker-immutable-cast.md index e58adddd3..f2dd95808 100644 --- a/website/docs/checker-immutable-cast.md +++ b/website/docs/checker-immutable-cast.md @@ -18,4 +18,4 @@ Casts flagged by this checker are unsafe because calling mutation operations on ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_IMMUTABLE_CAST](all-issue-types.md#checkers_immutable_cast) +- [CHECKERS_IMMUTABLE_CAST](all-issue-types#checkers_immutable_cast) diff --git a/website/docs/checker-inefficient-keyset-iterator.md b/website/docs/checker-inefficient-keyset-iterator.md index 90766953d..d83b9de68 100644 --- a/website/docs/checker-inefficient-keyset-iterator.md +++ b/website/docs/checker-inefficient-keyset-iterator.md @@ -11,3 +11,9 @@ Supported languages: - C/C++/ObjC: No - Java: Yes + + +## List of Issue Types + +The following issue types are reported by this checker: +- [INEFFICIENT_KEYSET_ITERATOR](all-issue-types#inefficient_keyset_iterator) diff --git a/website/docs/checker-linters.md b/website/docs/checker-linters.md index bc5cd67ef..75f24d6f7 100644 --- a/website/docs/checker-linters.md +++ b/website/docs/checker-linters.md @@ -707,18 +707,18 @@ developing new linters in Infer. Read about them in the [`infer capture` manual] ## List of Issue Types The following issue types are reported by this checker: -- [ASSIGN_POINTER_WARNING](all-issue-types.md#assign_pointer_warning) -- [BAD_POINTER_COMPARISON](all-issue-types.md#bad_pointer_comparison) -- [COMPONENT_FACTORY_FUNCTION](all-issue-types.md#component_factory_function) -- [COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS](all-issue-types.md#component_initializer_with_side_effects) -- [COMPONENT_WITH_MULTIPLE_FACTORY_METHODS](all-issue-types.md#component_with_multiple_factory_methods) -- [COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS](all-issue-types.md#component_with_unconventional_superclass) -- [CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK](all-issue-types.md#cxx_reference_captured_in_objc_block) -- [DIRECT_ATOMIC_PROPERTY_ACCESS](all-issue-types.md#direct_atomic_property_access) -- [DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER](all-issue-types.md#discouraged_weak_property_custom_setter) -- [GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL](all-issue-types.md#global_variable_initialized_with_function_or_method_call) -- [MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE](all-issue-types.md#mutable_local_variable_in_component_file) -- [POINTER_TO_CONST_OBJC_CLASS](all-issue-types.md#pointer_to_const_objc_class) -- [REGISTERED_OBSERVER_BEING_DEALLOCATED](all-issue-types.md#registered_observer_being_deallocated) -- [STRONG_DELEGATE_WARNING](all-issue-types.md#strong_delegate_warning) -- [UNAVAILABLE_API_IN_SUPPORTED_IOS_SDK](all-issue-types.md#unavailable_api_in_supported_ios_sdk) +- [ASSIGN_POINTER_WARNING](all-issue-types#assign_pointer_warning) +- [BAD_POINTER_COMPARISON](all-issue-types#bad_pointer_comparison) +- [COMPONENT_FACTORY_FUNCTION](all-issue-types#component_factory_function) +- [COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS](all-issue-types#component_initializer_with_side_effects) +- [COMPONENT_WITH_MULTIPLE_FACTORY_METHODS](all-issue-types#component_with_multiple_factory_methods) +- [COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS](all-issue-types#component_with_unconventional_superclass) +- [CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK](all-issue-types#cxx_reference_captured_in_objc_block) +- [DIRECT_ATOMIC_PROPERTY_ACCESS](all-issue-types#direct_atomic_property_access) +- [DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER](all-issue-types#discouraged_weak_property_custom_setter) +- [GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL](all-issue-types#global_variable_initialized_with_function_or_method_call) +- [MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE](all-issue-types#mutable_local_variable_in_component_file) +- [POINTER_TO_CONST_OBJC_CLASS](all-issue-types#pointer_to_const_objc_class) +- [REGISTERED_OBSERVER_BEING_DEALLOCATED](all-issue-types#registered_observer_being_deallocated) +- [STRONG_DELEGATE_WARNING](all-issue-types#strong_delegate_warning) +- [UNAVAILABLE_API_IN_SUPPORTED_IOS_SDK](all-issue-types#unavailable_api_in_supported_ios_sdk) diff --git a/website/docs/checker-liveness.md b/website/docs/checker-liveness.md index 4bbb8781a..545238a8e 100644 --- a/website/docs/checker-liveness.md +++ b/website/docs/checker-liveness.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [DEAD_STORE](all-issue-types.md#dead_store) +- [DEAD_STORE](all-issue-types#dead_store) diff --git a/website/docs/checker-printf-args.md b/website/docs/checker-printf-args.md index 6a7601549..8c1e0fc99 100644 --- a/website/docs/checker-printf-args.md +++ b/website/docs/checker-printf-args.md @@ -13,3 +13,9 @@ Supported languages: - C/C++/ObjC: No - Java: Yes + + +## List of Issue Types + +The following issue types are reported by this checker: +- [CHECKERS_PRINTF_ARGS](all-issue-types#checkers_printf_args) diff --git a/website/docs/checker-pulse.md b/website/docs/checker-pulse.md index b05406c7a..fbb7c3ab5 100644 --- a/website/docs/checker-pulse.md +++ b/website/docs/checker-pulse.md @@ -11,3 +11,15 @@ Supported languages: - C/C++/ObjC: Experimental - Java: Experimental + + +## List of Issue Types + +The following issue types are reported by this checker: +- [CONSTANT_ADDRESS_DEREFERENCE](all-issue-types#constant_address_dereference) +- [MEMORY_LEAK](all-issue-types#memory_leak) +- [NULLPTR_DEREFERENCE](all-issue-types#nullptr_dereference) +- [STACK_VARIABLE_ADDRESS_ESCAPE](all-issue-types#stack_variable_address_escape) +- [USE_AFTER_DELETE](all-issue-types#use_after_delete) +- [USE_AFTER_FREE](all-issue-types#use_after_free) +- [USE_AFTER_LIFETIME](all-issue-types#use_after_lifetime) diff --git a/website/docs/checker-quandary.md b/website/docs/checker-quandary.md index da3484631..9312d491d 100644 --- a/website/docs/checker-quandary.md +++ b/website/docs/checker-quandary.md @@ -24,3 +24,25 @@ example ## List of Issue Types The following issue types are reported by this checker: +- [CREATE_INTENT_FROM_URI](all-issue-types#create_intent_from_uri) +- [CROSS_SITE_SCRIPTING](all-issue-types#cross_site_scripting) +- [EXPOSED_INSECURE_INTENT_HANDLING](all-issue-types#exposed_insecure_intent_handling) +- [INSECURE_INTENT_HANDLING](all-issue-types#insecure_intent_handling) +- [JAVASCRIPT_INJECTION](all-issue-types#javascript_injection) +- [LOGGING_PRIVATE_DATA](all-issue-types#logging_private_data) +- [QUANDARY_TAINT_ERROR](all-issue-types#quandary_taint_error) +- [SHELL_INJECTION](all-issue-types#shell_injection) +- [SHELL_INJECTION_RISK](all-issue-types#shell_injection_risk) +- [SQL_INJECTION](all-issue-types#sql_injection) +- [SQL_INJECTION_RISK](all-issue-types#sql_injection_risk) +- [UNTRUSTED_BUFFER_ACCESS](all-issue-types#untrusted_buffer_access) +- [UNTRUSTED_DESERIALIZATION](all-issue-types#untrusted_deserialization) +- [UNTRUSTED_DESERIALIZATION_RISK](all-issue-types#untrusted_deserialization_risk) +- [UNTRUSTED_ENVIRONMENT_CHANGE_RISK](all-issue-types#untrusted_environment_change_risk) +- [UNTRUSTED_FILE](all-issue-types#untrusted_file) +- [UNTRUSTED_FILE_RISK](all-issue-types#untrusted_file_risk) +- [UNTRUSTED_HEAP_ALLOCATION](all-issue-types#untrusted_heap_allocation) +- [UNTRUSTED_INTENT_CREATION](all-issue-types#untrusted_intent_creation) +- [UNTRUSTED_URL_RISK](all-issue-types#untrusted_url_risk) +- [UNTRUSTED_VARIABLE_LENGTH_ARRAY](all-issue-types#untrusted_variable_length_array) +- [USER_CONTROLLED_SQL_RISK](all-issue-types#user_controlled_sql_risk) diff --git a/website/docs/checker-racerd.md b/website/docs/checker-racerd.md index 569016d14..0e5d3c3c3 100644 --- a/website/docs/checker-racerd.md +++ b/website/docs/checker-racerd.md @@ -505,6 +505,7 @@ resource. ## List of Issue Types The following issue types are reported by this checker: -- [INTERFACE_NOT_THREAD_SAFE](all-issue-types.md#interface_not_thread_safe) -- [LOCK_CONSISTENCY_VIOLATION](all-issue-types.md#lock_consistency_violation) -- [THREAD_SAFETY_VIOLATION](all-issue-types.md#thread_safety_violation) +- [GUARDEDBY_VIOLATION](all-issue-types#guardedby_violation) +- [INTERFACE_NOT_THREAD_SAFE](all-issue-types#interface_not_thread_safe) +- [LOCK_CONSISTENCY_VIOLATION](all-issue-types#lock_consistency_violation) +- [THREAD_SAFETY_VIOLATION](all-issue-types#thread_safety_violation) diff --git a/website/docs/checker-self-in-block.md b/website/docs/checker-self-in-block.md index 84b63c6c4..13a694e7b 100644 --- a/website/docs/checker-self-in-block.md +++ b/website/docs/checker-self-in-block.md @@ -16,8 +16,8 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CAPTURED_STRONG_SELF](all-issue-types.md#captured_strong_self) -- [MIXED_SELF_WEAKSELF](all-issue-types.md#mixed_self_weakself) -- [MULTIPLE_WEAKSELF](all-issue-types.md#multiple_weakself) -- [STRONG_SELF_NOT_CHECKED](all-issue-types.md#strong_self_not_checked) -- [WEAK_SELF_IN_NO_ESCAPE_BLOCK](all-issue-types.md#weak_self_in_no_escape_block) +- [CAPTURED_STRONG_SELF](all-issue-types#captured_strong_self) +- [MIXED_SELF_WEAKSELF](all-issue-types#mixed_self_weakself) +- [MULTIPLE_WEAKSELF](all-issue-types#multiple_weakself) +- [STRONG_SELF_NOT_CHECKED](all-issue-types#strong_self_not_checked) +- [WEAK_SELF_IN_NO_ESCAPE_BLOCK](all-issue-types#weak_self_in_no_escape_block) diff --git a/website/docs/checker-siof.md b/website/docs/checker-siof.md index 16a49ebcd..51b1043a5 100644 --- a/website/docs/checker-siof.md +++ b/website/docs/checker-siof.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [STATIC_INITIALIZATION_ORDER_FIASCO](all-issue-types.md#static_initialization_order_fiasco) +- [STATIC_INITIALIZATION_ORDER_FIASCO](all-issue-types#static_initialization_order_fiasco) diff --git a/website/docs/checker-starvation.md b/website/docs/checker-starvation.md index 60ea45888..9ad475ea8 100644 --- a/website/docs/checker-starvation.md +++ b/website/docs/checker-starvation.md @@ -21,6 +21,7 @@ Detect several kinds of "starvation" problems: ## List of Issue Types The following issue types are reported by this checker: -- [DEADLOCK](all-issue-types.md#deadlock) -- [STARVATION](all-issue-types.md#starvation) -- [STRICT_MODE_VIOLATION](all-issue-types.md#strict_mode_violation) +- [DEADLOCK](all-issue-types#deadlock) +- [LOCKLESS_VIOLATION](all-issue-types#lockless_violation) +- [STARVATION](all-issue-types#starvation) +- [STRICT_MODE_VIOLATION](all-issue-types#strict_mode_violation) diff --git a/website/docs/checker-uninit.md b/website/docs/checker-uninit.md index f6c558de1..e41370c50 100644 --- a/website/docs/checker-uninit.md +++ b/website/docs/checker-uninit.md @@ -11,3 +11,9 @@ Supported languages: - C/C++/ObjC: Yes - Java: No + + +## List of Issue Types + +The following issue types are reported by this checker: +- [UNINITIALIZED_VALUE](all-issue-types#uninitialized_value) diff --git a/website/static/man/next/infer-analyze.1.html b/website/static/man/next/infer-analyze.1.html index db36f63a3..4261168b1 100644 --- a/website/static/man/next/infer-analyze.1.html +++ b/website/static/man/next/infer-analyze.1.html @@ -1,5 +1,5 @@ - + @@ -123,17 +123,21 @@ list of source files from which reactive analysis should start. Source files should be specified relative to project root or be absolute

-

--class-loads

-

Activates: checker class-loads: -Compute set of Java classes loaded. (Conversely: ---no-class-loads)

+

--config-checks-between-markers

-

--class-loads-only

+

Activates: checker +config-checks-between-markers: [EXPERIMENTAL] Collects +config checks between marker start and end. (Conversely: +--no-config-checks-between-markers)

-

Activates: Enable class-loads -and disable all other checkers (Conversely: ---no-class-loads-only)

+ +

--config-checks-between-markers-only

+ +

Activates: Enable +config-checks-between-markers and disable all other checkers +(Conversely: +--no-config-checks-between-markers-only)

--continue-analysis

@@ -441,6 +445,12 @@ pulse will only explore one path. Can be used on pathologically large procedures to prevent too-big states from being produced.

+

--pulse-model-abort ++string

+ +

Methods that should be modelled +as abort in Pulse

+

--pulse-model-alloc-pattern string

diff --git a/website/static/man/next/infer-capture.1.html b/website/static/man/next/infer-capture.1.html index 9266ab2b8..a4f799bd3 100644 --- a/website/static/man/next/infer-capture.1.html +++ b/website/static/man/next/infer-capture.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-compile.1.html b/website/static/man/next/infer-compile.1.html index ae6dd74bf..75492ba88 100644 --- a/website/static/man/next/infer-compile.1.html +++ b/website/static/man/next/infer-compile.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-explore.1.html b/website/static/man/next/infer-explore.1.html index 22a7ca8d8..7b00fe7bd 100644 --- a/website/static/man/next/infer-explore.1.html +++ b/website/static/man/next/infer-explore.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-help.1.html b/website/static/man/next/infer-help.1.html index 2bb809019..72638fa84 100644 --- a/website/static/man/next/infer-help.1.html +++ b/website/static/man/next/infer-help.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-report.1.html b/website/static/man/next/infer-report.1.html index 3b1664818..6ac3044f4 100644 --- a/website/static/man/next/infer-report.1.html +++ b/website/static/man/next/infer-report.1.html @@ -1,5 +1,5 @@ - + @@ -175,13 +175,9 @@ Array_of_pointsto (enabled by default),
Assert_failure (enabled by default),
BAD_POINTER_COMPARISON (enabled by default),
BIABDUCTION_ANALYSIS_STOPS (disabled by default),
+BIABDUCTION_MEMORY_LEAK (disabled by default),
BIABD_CONDITION_ALWAYS_FALSE (disabled by default),
BIABD_CONDITION_ALWAYS_TRUE (disabled by default),
-BIABD_REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by
-default),
-BIABD_STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), -
-BIABD_USE_AFTER_FREE (enabled by default),
BUFFER_OVERRUN_L1 (enabled by default),
BUFFER_OVERRUN_L2 (enabled by default),
BUFFER_OVERRUN_L3 (enabled by default),
@@ -203,7 +199,6 @@ CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default),
CHECKERS_IMMUTABLE_CAST (enabled by default),
CHECKERS_PRINTF_ARGS (enabled by default),
CLASS_CAST_EXCEPTION (disabled by default),
-CLASS_LOAD (enabled by default),
COMPONENT_FACTORY_FUNCTION (enabled by default),
COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default),
@@ -216,6 +211,7 @@ COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default),
CONDITION_ALWAYS_FALSE (disabled by default),
CONDITION_ALWAYS_TRUE (disabled by default),
+CONFIG_CHECKS_BETWEEN_MARKERS (disabled by default),
CONSTANT_ADDRESS_DEREFERENCE (disabled by default),
CREATE_INTENT_FROM_URI (enabled by default),
CROSS_SITE_SCRIPTING (enabled by default),
@@ -229,7 +225,6 @@ DEADLOCK (enabled by default),
DEAD_STORE (enabled by default),
DEALLOCATE_STACK_VARIABLE (enabled by default),
DEALLOCATE_STATIC_MEMORY (enabled by default),
-DEALLOCATION_MISMATCH (enabled by default),
DIRECT_ATOMIC_PROPERTY_ACCESS (enabled by default),
DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER (enabled by default),
@@ -324,7 +319,6 @@ PRECONDITION_NOT_FOUND (enabled by default),
PRECONDITION_NOT_MET (enabled by default),
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
-PULSE_MEMORY_LEAK (disabled by default),
PURE_FUNCTION (enabled by default),
QUANDARY_TAINT_ERROR (enabled by default),
REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), diff --git a/website/static/man/next/infer-reportdiff.1.html b/website/static/man/next/infer-reportdiff.1.html index 18e705e6f..44a9a019d 100644 --- a/website/static/man/next/infer-reportdiff.1.html +++ b/website/static/man/next/infer-reportdiff.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-run.1.html b/website/static/man/next/infer-run.1.html index 804d34469..3dcf956d4 100644 --- a/website/static/man/next/infer-run.1.html +++ b/website/static/man/next/infer-run.1.html @@ -1,5 +1,5 @@ - + @@ -180,6 +180,12 @@ undefined, and to pager otherwise.

Show this manual with all internal options in the INTERNAL OPTIONS section

+

--pmd-xml

+ +

Activates: Output issues in +(PMD) XML format in infer-out/report.xml (Conversely: +--no-pmd-xml)

+

--print-logs

Activates: Also log messages to diff --git a/website/static/man/next/infer.1.html b/website/static/man/next/infer.1.html index 95df8d418..6de12fb56 100644 --- a/website/static/man/next/infer.1.html +++ b/website/static/man/next/infer.1.html @@ -1,5 +1,5 @@ - + @@ -411,22 +411,6 @@ each analysis has to model.

See also infer-analyze(1) and infer-capture(1).
---class-loads

- -

Activates: checker class-loads: -Compute set of Java classes loaded. (Conversely: ---no-class-loads)

- -

See also -infer-analyze(1).
---class-loads-only

- -

Activates: Enable class-loads -and disable all other checkers (Conversely: ---no-class-loads-only)

- -

See also -infer-analyze(1).
--compilation-database
+path

File that contain compilation @@ -451,6 +435,24 @@ component kit file cyclomatic complexity (Conversely:

See also infer-capture(1) and infer-run(1).
+--config-checks-between-markers

+ +

Activates: checker +config-checks-between-markers: [EXPERIMENTAL] Collects +config checks between marker start and end. (Conversely: +--no-config-checks-between-markers)

+ +

See also +infer-analyze(1).
+--config-checks-between-markers-only

+ +

Activates: Enable +config-checks-between-markers and disable all other checkers +(Conversely: +--no-config-checks-between-markers-only)

+ +

See also +infer-analyze(1).
--continue

Activates: Continue the capture @@ -660,13 +662,9 @@ Array_of_pointsto (enabled by default),
Assert_failure (enabled by default),
BAD_POINTER_COMPARISON (enabled by default),
BIABDUCTION_ANALYSIS_STOPS (disabled by default),
+BIABDUCTION_MEMORY_LEAK (disabled by default),
BIABD_CONDITION_ALWAYS_FALSE (disabled by default),
BIABD_CONDITION_ALWAYS_TRUE (disabled by default),
-BIABD_REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by
-default),
-BIABD_STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), -
-BIABD_USE_AFTER_FREE (enabled by default),
BUFFER_OVERRUN_L1 (enabled by default),
BUFFER_OVERRUN_L2 (enabled by default),
BUFFER_OVERRUN_L3 (enabled by default),
@@ -688,7 +686,6 @@ CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default),
CHECKERS_IMMUTABLE_CAST (enabled by default),
CHECKERS_PRINTF_ARGS (enabled by default),
CLASS_CAST_EXCEPTION (disabled by default),
-CLASS_LOAD (enabled by default),
COMPONENT_FACTORY_FUNCTION (enabled by default),
COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default),
@@ -701,6 +698,7 @@ COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default),
CONDITION_ALWAYS_FALSE (disabled by default),
CONDITION_ALWAYS_TRUE (disabled by default),
+CONFIG_CHECKS_BETWEEN_MARKERS (disabled by default),
CONSTANT_ADDRESS_DEREFERENCE (disabled by default),
CREATE_INTENT_FROM_URI (enabled by default),
CROSS_SITE_SCRIPTING (enabled by default),
@@ -714,7 +712,6 @@ DEADLOCK (enabled by default),
DEAD_STORE (enabled by default),
DEALLOCATE_STACK_VARIABLE (enabled by default),
DEALLOCATE_STATIC_MEMORY (enabled by default),
-DEALLOCATION_MISMATCH (enabled by default),
DIRECT_ATOMIC_PROPERTY_ACCESS (enabled by default),
DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER (enabled by default),
@@ -809,7 +806,6 @@ PRECONDITION_NOT_FOUND (enabled by default),
PRECONDITION_NOT_MET (enabled by default),
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
-PULSE_MEMORY_LEAK (disabled by default),
PURE_FUNCTION (enabled by default),
QUANDARY_TAINT_ERROR (enabled by default),
REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), @@ -1384,6 +1380,14 @@ containing perf profiler data to read

See also infer-analyze(1).
+--pmd-xml

+ +

Activates: Output issues in +(PMD) XML format in infer-out/report.xml (Conversely: +--no-pmd-xml)

+ +

See also infer-run(1). +
--print-active-checkers

Activates: Print the active @@ -1526,6 +1530,13 @@ pulse will only explore one path. Can be used on pathologically large procedures to prevent too-big states from being produced.

+

See also +infer-analyze(1).
+--pulse-model-abort
+string

+ +

Methods that should be modelled +as abort in Pulse

+

See also infer-analyze(1).
--pulse-model-alloc-pattern
string

diff --git a/website/static/odoc/next/infer/Absint/AbstractDomain/TopLiftedUtils/index.html b/website/static/odoc/next/infer/Absint/AbstractDomain/TopLiftedUtils/index.html index 1d36e4c02..01a4ed428 100644 --- a/website/static/odoc/next/infer/Absint/AbstractDomain/TopLiftedUtils/index.html +++ b/website/static/odoc/next/infer/Absint/AbstractDomain/TopLiftedUtils/index.html @@ -1,2 +1,2 @@ -TopLiftedUtils (infer.Absint.AbstractDomain.TopLiftedUtils)

Module AbstractDomain.TopLiftedUtils

val pp_top : Stdlib.Format.formatter -> unit
\ No newline at end of file +TopLiftedUtils (infer.Absint.AbstractDomain.TopLiftedUtils)

Module AbstractDomain.TopLiftedUtils

val leq : leq:(lhs:'a -> rhs:'a -> bool) -> lhs:'a Types.top_lifted -> rhs:'a Types.top_lifted -> bool
val pp : pp:(Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a Types.top_lifted -> unit
val pp_top : Stdlib.Format.formatter -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Absint/Localise/index.html b/website/static/odoc/next/infer/Absint/Localise/index.html index f12c8537f..d68ac847d 100644 --- a/website/static/odoc/next/infer/Absint/Localise/index.html +++ b/website/static/odoc/next/infer/Absint/Localise/index.html @@ -1,2 +1,2 @@ -Localise (infer.Absint.Localise)

Module Absint.Localise

module Tags : sig ... end
type error_desc = {
descriptions : string list;
tags : Tags.t;
dotty : string option;
}

description field of error messages

val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc

empty error description

val verbatim_desc : string -> error_desc

verbatim desc from a string, not to be used for user-visible descs

module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option

get the bucket value of an error_desc, if any

val error_desc_set_bucket : error_desc -> string -> error_desc

set the bucket value of an error_desc

val error_desc_is_reportable_bucket : error_desc -> bool

check if the report is in a high confidence bucket

val error_desc_hash : error_desc -> int

hash function for error_desc

val error_desc_equal : error_desc -> error_desc -> bool

equality for error_desc

val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit

pretty print an error description

val error_desc_get_dotty : error_desc -> string option
type deref_str

dereference strings used to explain a dereference action in an error message

val deref_str_null : IR.Procname.t option -> deref_str

dereference strings for null dereference

val deref_str_nullable : IR.Procname.t option -> string -> deref_str

dereference strings for null dereference due to Nullable annotation

val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str

dereference strings for an undefined value coming from the given procedure

val deref_str_freed : IR.PredSymb.res_action -> deref_str

dereference strings for a freed pointer dereference

val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str

dereference strings for a dangling pointer dereference

val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str

dereference strings for an array out of bound access

val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str

dereference strings for nonterminal nil arguments in c/objc variadic methods

val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str

dereference strings for a pointer size mismatch

type access =
| Last_assigned of int * bool

line, null_case_flag

| Last_accessed of int * bool

line, is_nullable flag

| Initialized_automatically
| Returned_from_call of int

type of access

val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_allocation_mismatch : (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> error_desc
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc

Create human-readable error description for assertion failures

type pnm_kind =
| Pnm_bounds
| Pnm_dangling

kind of precondition not met

val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_stack_variable_address_escape : IR.Pvar.t -> string option -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
\ No newline at end of file +Localise (infer.Absint.Localise)

Module Absint.Localise

module Tags : sig ... end
type error_desc = {
descriptions : string list;
tags : Tags.t;
dotty : string option;
}

description field of error messages

val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc

empty error description

val verbatim_desc : string -> error_desc

verbatim desc from a string, not to be used for user-visible descs

module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option

get the bucket value of an error_desc, if any

val error_desc_set_bucket : error_desc -> string -> error_desc

set the bucket value of an error_desc

val error_desc_is_reportable_bucket : error_desc -> bool

check if the report is in a high confidence bucket

val error_desc_hash : error_desc -> int

hash function for error_desc

val error_desc_equal : error_desc -> error_desc -> bool

equality for error_desc

val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit

pretty print an error description

val error_desc_get_dotty : error_desc -> string option
type deref_str

dereference strings used to explain a dereference action in an error message

val deref_str_null : IR.Procname.t option -> deref_str

dereference strings for null dereference

val deref_str_nullable : IR.Procname.t option -> string -> deref_str

dereference strings for null dereference due to Nullable annotation

val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str

dereference strings for an undefined value coming from the given procedure

val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str

dereference strings for a dangling pointer dereference

val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str

dereference strings for an array out of bound access

val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str

dereference strings for nonterminal nil arguments in c/objc variadic methods

val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str

dereference strings for a pointer size mismatch

type access =
| Last_assigned of int * bool

line, null_case_flag

| Last_accessed of int * bool

line, is_nullable flag

| Initialized_automatically
| Returned_from_call of int

type of access

val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc

Create human-readable error description for assertion failures

type pnm_kind =
| Pnm_bounds
| Pnm_dangling

kind of precondition not met

val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Absint__AbstractDomain/TopLiftedUtils/index.html b/website/static/odoc/next/infer/Absint__AbstractDomain/TopLiftedUtils/index.html index fa545bd01..077f67b81 100644 --- a/website/static/odoc/next/infer/Absint__AbstractDomain/TopLiftedUtils/index.html +++ b/website/static/odoc/next/infer/Absint__AbstractDomain/TopLiftedUtils/index.html @@ -1,2 +1,2 @@ -TopLiftedUtils (infer.Absint__AbstractDomain.TopLiftedUtils)

Module Absint__AbstractDomain.TopLiftedUtils

val pp_top : Stdlib.Format.formatter -> unit
\ No newline at end of file +TopLiftedUtils (infer.Absint__AbstractDomain.TopLiftedUtils)

Module Absint__AbstractDomain.TopLiftedUtils

val leq : leq:(lhs:'a -> rhs:'a -> bool) -> lhs:'a Types.top_lifted -> rhs:'a Types.top_lifted -> bool
val pp : pp:(Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a Types.top_lifted -> unit
val pp_top : Stdlib.Format.formatter -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Absint__Localise/index.html b/website/static/odoc/next/infer/Absint__Localise/index.html index 273fc5a49..ee9e9e44c 100644 --- a/website/static/odoc/next/infer/Absint__Localise/index.html +++ b/website/static/odoc/next/infer/Absint__Localise/index.html @@ -1,2 +1,2 @@ -Absint__Localise (infer.Absint__Localise)

Module Absint__Localise

module Tags : sig ... end
type error_desc = {
descriptions : string list;
tags : Tags.t;
dotty : string option;
}

description field of error messages

val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc

empty error description

val verbatim_desc : string -> error_desc

verbatim desc from a string, not to be used for user-visible descs

module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option

get the bucket value of an error_desc, if any

val error_desc_set_bucket : error_desc -> string -> error_desc

set the bucket value of an error_desc

val error_desc_is_reportable_bucket : error_desc -> bool

check if the report is in a high confidence bucket

val error_desc_hash : error_desc -> int

hash function for error_desc

val error_desc_equal : error_desc -> error_desc -> bool

equality for error_desc

val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit

pretty print an error description

val error_desc_get_dotty : error_desc -> string option
type deref_str

dereference strings used to explain a dereference action in an error message

val deref_str_null : IR.Procname.t option -> deref_str

dereference strings for null dereference

val deref_str_nullable : IR.Procname.t option -> string -> deref_str

dereference strings for null dereference due to Nullable annotation

val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str

dereference strings for an undefined value coming from the given procedure

val deref_str_freed : IR.PredSymb.res_action -> deref_str

dereference strings for a freed pointer dereference

val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str

dereference strings for a dangling pointer dereference

val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str

dereference strings for an array out of bound access

val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str

dereference strings for nonterminal nil arguments in c/objc variadic methods

val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str

dereference strings for a pointer size mismatch

type access =
| Last_assigned of int * bool

line, null_case_flag

| Last_accessed of int * bool

line, is_nullable flag

| Initialized_automatically
| Returned_from_call of int

type of access

val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_allocation_mismatch : (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> error_desc
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc

Create human-readable error description for assertion failures

type pnm_kind =
| Pnm_bounds
| Pnm_dangling

kind of precondition not met

val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_stack_variable_address_escape : IR.Pvar.t -> string option -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
\ No newline at end of file +Absint__Localise (infer.Absint__Localise)

Module Absint__Localise

module Tags : sig ... end
type error_desc = {
descriptions : string list;
tags : Tags.t;
dotty : string option;
}

description field of error messages

val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc

empty error description

val verbatim_desc : string -> error_desc

verbatim desc from a string, not to be used for user-visible descs

module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option

get the bucket value of an error_desc, if any

val error_desc_set_bucket : error_desc -> string -> error_desc

set the bucket value of an error_desc

val error_desc_is_reportable_bucket : error_desc -> bool

check if the report is in a high confidence bucket

val error_desc_hash : error_desc -> int

hash function for error_desc

val error_desc_equal : error_desc -> error_desc -> bool

equality for error_desc

val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit

pretty print an error description

val error_desc_get_dotty : error_desc -> string option
type deref_str

dereference strings used to explain a dereference action in an error message

val deref_str_null : IR.Procname.t option -> deref_str

dereference strings for null dereference

val deref_str_nullable : IR.Procname.t option -> string -> deref_str

dereference strings for null dereference due to Nullable annotation

val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str

dereference strings for an undefined value coming from the given procedure

val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str

dereference strings for a dangling pointer dereference

val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str

dereference strings for an array out of bound access

val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str

dereference strings for nonterminal nil arguments in c/objc variadic methods

val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str

dereference strings for a pointer size mismatch

type access =
| Last_assigned of int * bool

line, null_case_flag

| Last_accessed of int * bool

line, is_nullable flag

| Initialized_automatically
| Returned_from_call of int

type of access

val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc

Create human-readable error description for assertion failures

type pnm_kind =
| Pnm_bounds
| Pnm_dangling

kind of precondition not met

val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend/Payloads/Fields/Direct/index.html b/website/static/odoc/next/infer/Backend/Payloads/Fields/Direct/index.html index 0d7858c18..aa26fd00d 100644 --- a/website/static/odoc/next/infer/Backend/Payloads/Fields/Direct/index.html +++ b/website/static/odoc/next/infer/Backend/Payloads/Fields/Direct/index.html @@ -1,2 +1,2 @@ -Direct (infer.Backend.Payloads.Fields.Direct)

Module Fields.Direct

val iter : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> class_loads:('acc__4 -> (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> Checkers.ClassLoadsDomain.summary option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
\ No newline at end of file +Direct (infer.Backend.Payloads.Fields.Direct)

Module Fields.Direct

val iter : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend/Payloads/Fields/index.html b/website/static/odoc/next/infer/Backend/Payloads/Fields/index.html index d86996134..7b94e3ab0 100644 --- a/website/static/odoc/next/infer/Backend/Payloads/Fields/index.html +++ b/website/static/odoc/next/infer/Backend/Payloads/Fields/index.html @@ -1,2 +1,2 @@ -Fields (infer.Backend.Payloads.Fields)

Module Payloads.Fields

val names : string list
val uninit : (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (tQuandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (tCheckers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (tPulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (tCheckers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (tCostlib.CostDomain.summary option) Fieldslib.Field.t
val class_loads : (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t
val buffer_overrun_checker : (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> class_loads:('acc__4 -> (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ClassLoadsDomain.summary option) * 'acc__5) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> class_loads:Checkers.ClassLoadsDomain.summary option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> Checkers.ClassLoadsDomain.summary option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ]t'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
\ No newline at end of file +Fields (infer.Backend.Payloads.Fields)

Module Payloads.Fields

val names : string list
val uninit : (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (tQuandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (tCheckers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (tPulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (tCheckers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (tCostlib.CostDomain.summary option) Fieldslib.Field.t
val config_checks_between_markers : (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t
val buffer_overrun_checker : (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) * 'acc__5) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> config_checks_between_markers:Checkers.ConfigChecksBetweenMarkers.Summary.t option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ]t'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend/Payloads/index.html b/website/static/odoc/next/infer/Backend/Payloads/index.html index aa89c7636..5264a7e88 100644 --- a/website/static/odoc/next/infer/Backend/Payloads/index.html +++ b/website/static/odoc/next/infer/Backend/Payloads/index.html @@ -1,2 +1,2 @@ -Payloads (infer.Backend.Payloads)

Module Backend.Payloads

include sig ... end
type t = {
annot_map : Checkers.AnnotationReachabilityDomain.t option;
biabduction : Biabduction.BiabductionSummary.t option;
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option;
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option;
class_loads : Checkers.ClassLoadsDomain.summary option;
cost : Costlib.CostDomain.summary option;
lab_resource_leaks : Labs.ResourceLeakDomain.summary option;
litho_required_props : Checkers.LithoDomain.summary option;
pulse : Pulselib.PulseSummary.t option;
purity : Checkers.PurityDomain.summary option;
quandary : Quandary.QuandarySummary.t option;
racerd : Concurrency.RacerDDomain.summary option;
siof : Checkers.SiofDomain.Summary.t option;
starvation : Concurrency.StarvationDomain.summary option;
nullsafe : Nullsafe.NullsafeSummary.t option;
uninit : Checkers.UninitDomain.Summary.t option;
}

analysis results

val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val class_loads : t -> Checkers.ClassLoadsDomain.summary option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
\ No newline at end of file +Payloads (infer.Backend.Payloads)

Module Backend.Payloads

include sig ... end
type t = {
annot_map : Checkers.AnnotationReachabilityDomain.t option;
biabduction : Biabduction.BiabductionSummary.t option;
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option;
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option;
config_checks_between_markers : Checkers.ConfigChecksBetweenMarkers.Summary.t option;
cost : Costlib.CostDomain.summary option;
lab_resource_leaks : Labs.ResourceLeakDomain.summary option;
litho_required_props : Checkers.LithoDomain.summary option;
pulse : Pulselib.PulseSummary.t option;
purity : Checkers.PurityDomain.summary option;
quandary : Quandary.QuandarySummary.t option;
racerd : Concurrency.RacerDDomain.summary option;
siof : Checkers.SiofDomain.Summary.t option;
starvation : Concurrency.StarvationDomain.summary option;
nullsafe : Nullsafe.NullsafeSummary.t option;
uninit : Checkers.UninitDomain.Summary.t option;
}

analysis results

val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val config_checks_between_markers : t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend__Payloads/Fields/Direct/index.html b/website/static/odoc/next/infer/Backend__Payloads/Fields/Direct/index.html index d238ecb81..867463252 100644 --- a/website/static/odoc/next/infer/Backend__Payloads/Fields/Direct/index.html +++ b/website/static/odoc/next/infer/Backend__Payloads/Fields/Direct/index.html @@ -1,2 +1,2 @@ -Direct (infer.Backend__Payloads.Fields.Direct)

Module Fields.Direct

val iter : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> class_loads:('acc__4 -> (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> Checkers.ClassLoadsDomain.summary option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
\ No newline at end of file +Direct (infer.Backend__Payloads.Fields.Direct)

Module Fields.Direct

val iter : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend__Payloads/Fields/index.html b/website/static/odoc/next/infer/Backend__Payloads/Fields/index.html index 6eacc6648..fd6225c4c 100644 --- a/website/static/odoc/next/infer/Backend__Payloads/Fields/index.html +++ b/website/static/odoc/next/infer/Backend__Payloads/Fields/index.html @@ -1,2 +1,2 @@ -Fields (infer.Backend__Payloads.Fields)

Module Backend__Payloads.Fields

val names : string list
val uninit : (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (tQuandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (tCheckers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (tPulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (tCheckers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (tCostlib.CostDomain.summary option) Fieldslib.Field.t
val class_loads : (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t
val buffer_overrun_checker : (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> class_loads:('acc__4 -> (tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ClassLoadsDomain.summary option) * 'acc__5) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> class_loads:Checkers.ClassLoadsDomain.summary option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> Checkers.ClassLoadsDomain.summary option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> class_loads:((tCheckers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ]t'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
\ No newline at end of file +Fields (infer.Backend__Payloads.Fields)

Module Backend__Payloads.Fields

val names : string list
val uninit : (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (tQuandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (tCheckers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (tPulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (tCheckers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (tCostlib.CostDomain.summary option) Fieldslib.Field.t
val config_checks_between_markers : (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t
val buffer_overrun_checker : (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) * 'acc__5) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> config_checks_between_markers:Checkers.ConfigChecksBetweenMarkers.Summary.t option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> unit) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((tCheckers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((tBiabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((tBO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((tBO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> config_checks_between_markers:((tCheckers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'elem__) -> cost:((tCostlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((tLabs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((tCheckers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((tPulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((tCheckers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((tQuandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((tConcurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((tCheckers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((tConcurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((tNullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((tCheckers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ]t'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Backend__Payloads/index.html b/website/static/odoc/next/infer/Backend__Payloads/index.html index 13c63570d..ae96904a1 100644 --- a/website/static/odoc/next/infer/Backend__Payloads/index.html +++ b/website/static/odoc/next/infer/Backend__Payloads/index.html @@ -1,2 +1,2 @@ -Backend__Payloads (infer.Backend__Payloads)

Module Backend__Payloads

include sig ... end
type t = {
annot_map : Checkers.AnnotationReachabilityDomain.t option;
biabduction : Biabduction.BiabductionSummary.t option;
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option;
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option;
class_loads : Checkers.ClassLoadsDomain.summary option;
cost : Costlib.CostDomain.summary option;
lab_resource_leaks : Labs.ResourceLeakDomain.summary option;
litho_required_props : Checkers.LithoDomain.summary option;
pulse : Pulselib.PulseSummary.t option;
purity : Checkers.PurityDomain.summary option;
quandary : Quandary.QuandarySummary.t option;
racerd : Concurrency.RacerDDomain.summary option;
siof : Checkers.SiofDomain.Summary.t option;
starvation : Concurrency.StarvationDomain.summary option;
nullsafe : Nullsafe.NullsafeSummary.t option;
uninit : Checkers.UninitDomain.Summary.t option;
}

analysis results

val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val class_loads : t -> Checkers.ClassLoadsDomain.summary option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
\ No newline at end of file +Backend__Payloads (infer.Backend__Payloads)

Module Backend__Payloads

include sig ... end
type t = {
annot_map : Checkers.AnnotationReachabilityDomain.t option;
biabduction : Biabduction.BiabductionSummary.t option;
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option;
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option;
config_checks_between_markers : Checkers.ConfigChecksBetweenMarkers.Summary.t option;
cost : Costlib.CostDomain.summary option;
lab_resource_leaks : Labs.ResourceLeakDomain.summary option;
litho_required_props : Checkers.LithoDomain.summary option;
pulse : Pulselib.PulseSummary.t option;
purity : Checkers.PurityDomain.summary option;
quandary : Quandary.QuandarySummary.t option;
racerd : Concurrency.RacerDDomain.summary option;
siof : Checkers.SiofDomain.Summary.t option;
starvation : Concurrency.StarvationDomain.summary option;
nullsafe : Nullsafe.NullsafeSummary.t option;
uninit : Checkers.UninitDomain.Summary.t option;
}

analysis results

val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val config_checks_between_markers : t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction/Attribute/index.html b/website/static/odoc/next/infer/Biabduction/Attribute/index.html index 1d8c4ac7f..cc8761607 100644 --- a/website/static/odoc/next/infer/Biabduction/Attribute/index.html +++ b/website/static/odoc/next/infer/Biabduction/Attribute/index.html @@ -1,2 +1,2 @@ -Attribute (infer.Biabduction.Attribute)

Module Biabduction.Attribute

val is_pred : Predicates.atom -> bool

Check whether an atom is used to mark an attribute

val add : IR.Tenv.t -> ?⁠footprint:bool -> ?⁠polarity:bool -> Prop.normal Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Prop.normal Prop.t

Add an attribute associated to the argument expressions

val add_or_replace : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Replace an attribute associated to the expression

val add_or_replace_check_changed : IR.Tenv.t -> (IR.PredSymb.t -> IR.PredSymb.t -> unit) -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.

val get_all : 'a Prop.t -> Predicates.atom list

Get all the attributes of the prop

val get_for_exp : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom list

Get the attributes associated to the expression, if any

val get_objc_null : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the objc null attribute associated to the expression, if any

val get_observer : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the observer attribute associated to the expression, if any

val get_resource : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the resource attribute associated to the expression, if any

val get_undef : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the undef attribute associated to the expression, if any

val get_wontleak : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the wontleak attribute associated to the expression, if any

val has_dangling_uninit : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> bool

Test for existence of an Adangling DAuninit attribute associated to the exp

val remove : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Remove an attribute

val remove_for_attr : IR.Tenv.t -> Prop.normal Prop.t -> IR.PredSymb.t -> Prop.normal Prop.t

Remove all attributes for the given attr

val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Prop.normal Prop.t -> Prop.normal Prop.t

Remove all attributes for the given resource and kind

val map_resource : IR.Tenv.t -> Prop.normal Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Prop.normal Prop.t

Apply f to every resource attribute in the prop

val replace_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> IR.Exp.t -> Prop.normal Prop.t

replace_objc_null lhs rhs. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0

val nullify_exp_with_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> Prop.normal Prop.t

For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.

val mark_vars_as_undefined : IR.Tenv.t -> Prop.normal Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t

mark Exp.Var's or Exp.Lvar's as undefined

type arith_problem =
| Div0 of IR.Exp.t
| UminusUnsigned of IR.Exp.t * IR.Typ.t

type for arithmetic problems

val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t -> IR.Exp.t -> arith_problem option * Prop.normal Prop.t

Look for an arithmetic problem in exp

val deallocate_stack_vars : IR.Tenv.t -> Prop.normal Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Prop.normal Prop.t

Deallocate the stack variables in pvars, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.

val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Prop.t -> IR.Exp.t option
\ No newline at end of file +Attribute (infer.Biabduction.Attribute)

Module Biabduction.Attribute

val is_pred : Predicates.atom -> bool

Check whether an atom is used to mark an attribute

val add : IR.Tenv.t -> ?⁠footprint:bool -> ?⁠polarity:bool -> Prop.normal Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Prop.normal Prop.t

Add an attribute associated to the argument expressions

val add_or_replace : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Replace an attribute associated to the expression

val add_or_replace_check_changed : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.

val get_all : 'a Prop.t -> Predicates.atom list

Get all the attributes of the prop

val get_for_exp : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom list

Get the attributes associated to the expression, if any

val get_objc_null : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the objc null attribute associated to the expression, if any

val get_observer : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the observer attribute associated to the expression, if any

val get_resource : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the resource attribute associated to the expression, if any

val get_undef : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the undef attribute associated to the expression, if any

val get_wontleak : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option

Get the wontleak attribute associated to the expression, if any

val has_dangling_uninit : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> bool

Test for existence of an Adangling DAuninit attribute associated to the exp

val remove : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t

Remove an attribute

val remove_for_attr : IR.Tenv.t -> Prop.normal Prop.t -> IR.PredSymb.t -> Prop.normal Prop.t

Remove all attributes for the given attr

val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Prop.normal Prop.t -> Prop.normal Prop.t

Remove all attributes for the given resource and kind

val map_resource : IR.Tenv.t -> Prop.normal Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Prop.normal Prop.t

Apply f to every resource attribute in the prop

val replace_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> IR.Exp.t -> Prop.normal Prop.t

replace_objc_null lhs rhs. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0

val nullify_exp_with_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> Prop.normal Prop.t

For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.

val mark_vars_as_undefined : IR.Tenv.t -> Prop.normal Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t

mark Exp.Var's or Exp.Lvar's as undefined

type arith_problem =
| Div0 of IR.Exp.t
| UminusUnsigned of IR.Exp.t * IR.Typ.t

type for arithmetic problems

val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t -> IR.Exp.t -> arith_problem option * Prop.normal Prop.t

Look for an arithmetic problem in exp

val deallocate_stack_vars : IR.Tenv.t -> Prop.normal Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Prop.normal Prop.t

Deallocate the stack variables in pvars, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.

val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Prop.t -> IR.Exp.t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction/Errdesc/index.html b/website/static/odoc/next/infer/Biabduction/Errdesc/index.html index 51099d4df..2f6f95065 100644 --- a/website/static/odoc/next/infer/Biabduction/Errdesc/index.html +++ b/website/static/odoc/next/infer/Biabduction/Errdesc/index.html @@ -1,2 +1,2 @@ -Errdesc (infer.Biabduction.Errdesc)

Module Biabduction.Errdesc

val vpath_find : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option

find the dexp, if any, where the given value is stored also return the type of the value if found

val hpred_is_open_resource : IR.Tenv.t -> 'a Prop.t -> Predicates.hpred -> IR.PredSymb.resource option

Check whether the hpred is a |-> representing a resource in the Racquire state

val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option

Find a program variable assignment to id in the current node or predecessors.

val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option

describe rvalue e as a dexp

val explain_allocation_mismatch : IR.PredSymb.res_action -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Produce a description of a mismatch between an allocation function and a deallocation function

val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of the array access performed in the current instruction, if any.

val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a class cast exception

val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate stack variable error

val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate constant string error

val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> ?⁠is_nullable:bool -> ?⁠is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of which expression is dereferenced in the current instruction, if any.

val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> Absint.Localise.deref_str -> 'a Prop.t -> 'b Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc

return a description explaining value exp in prop in terms of a source expression using the formal parameters of the call

val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a division by zero

val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a condition which is always true or false

val explain_stack_variable_address_escape : IBase.Location.t -> IR.Pvar.t -> IR.DecompiledExp.t option -> Absint.Localise.error_desc

explain the escape of a stack variable address from its scope

val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain unary minus applied to unsigned expression

val explain_leak : IR.Tenv.t -> Predicates.hpred -> 'a Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc

Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.

val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc

explain a test for NULL of a dereferenced pointer

val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a

warn at the given location

val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?⁠is_nullable:bool -> Predicates.inst -> Absint.Localise.access option
\ No newline at end of file +Errdesc (infer.Biabduction.Errdesc)

Module Biabduction.Errdesc

val vpath_find : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option

find the dexp, if any, where the given value is stored also return the type of the value if found

val hpred_is_open_resource : IR.Tenv.t -> 'a Prop.t -> Predicates.hpred -> IR.PredSymb.resource option

Check whether the hpred is a |-> representing a resource in the Racquire state

val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option

Find a program variable assignment to id in the current node or predecessors.

val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option

describe rvalue e as a dexp

val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of the array access performed in the current instruction, if any.

val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a class cast exception

val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate stack variable error

val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate constant string error

val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> ?⁠is_nullable:bool -> ?⁠is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of which expression is dereferenced in the current instruction, if any.

val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> Absint.Localise.deref_str -> 'a Prop.t -> 'b Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc

return a description explaining value exp in prop in terms of a source expression using the formal parameters of the call

val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a division by zero

val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a condition which is always true or false

val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain unary minus applied to unsigned expression

val explain_leak : IR.Tenv.t -> Predicates.hpred -> 'a Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc

Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.

val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc

explain a test for NULL of a dereferenced pointer

val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a

warn at the given location

val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?⁠is_nullable:bool -> Predicates.inst -> Absint.Localise.access option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction/Exceptions/index.html b/website/static/odoc/next/infer/Biabduction/Exceptions/index.html index 545084248..a1d99217e 100644 --- a/website/static/odoc/next/infer/Biabduction/Exceptions/index.html +++ b/website/static/odoc/next/infer/Biabduction/Exceptions/index.html @@ -1,2 +1,2 @@ -Exceptions (infer.Biabduction.Exceptions)

Module Biabduction.Exceptions

Biabduction uses exceptions to store issues in summaries

exception Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception Array_of_pointsto of IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Bad_footprint of IBase.Logging.ocaml_pos
exception Biabd_use_after_free of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Cannot_star of IBase.Logging.ocaml_pos
exception Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Deallocate_stack_variable of Absint.Localise.error_desc
exception Deallocate_static_memory of Absint.Localise.error_desc
exception Deallocation_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Inherently_dangerous_function of Absint.Localise.error_desc
exception Internal_error of Absint.Localise.error_desc
exception Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Skip_function of Absint.Localise.error_desc
exception Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Stack_variable_address_escape of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Symexec_memory_error of IBase.Logging.ocaml_pos
exception Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool

Return true if the exception is not serious and should be handled in timeout mode

val print_exception_html : string -> exn -> unit

print a description of the exception to the html output

val recognize_exception : exn -> Absint.IssueToReport.t
\ No newline at end of file +Exceptions (infer.Biabduction.Exceptions)

Module Biabduction.Exceptions

Biabduction uses exceptions to store issues in summaries

exception Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception Array_of_pointsto of IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Bad_footprint of IBase.Logging.ocaml_pos
exception Cannot_star of IBase.Logging.ocaml_pos
exception Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Deallocate_stack_variable of Absint.Localise.error_desc
exception Deallocate_static_memory of Absint.Localise.error_desc
exception Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Inherently_dangerous_function of Absint.Localise.error_desc
exception Internal_error of Absint.Localise.error_desc
exception Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Skip_function of Absint.Localise.error_desc
exception Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Symexec_memory_error of IBase.Logging.ocaml_pos
exception Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool

Return true if the exception is not serious and should be handled in timeout mode

val print_exception_html : string -> exn -> unit

print a description of the exception to the html output

val recognize_exception : exn -> Absint.IssueToReport.t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction/Tabulation/index.html b/website/static/odoc/next/infer/Biabduction/Tabulation/index.html index d2360f847..06e7c348e 100644 --- a/website/static/odoc/next/infer/Biabduction/Tabulation/index.html +++ b/website/static/odoc/next/infer/Biabduction/Tabulation/index.html @@ -1,2 +1,2 @@ -Tabulation (infer.Biabduction.Tabulation)

Module Biabduction.Tabulation

val remove_constant_string_class : IR.Tenv.t -> 'a Prop.t -> Prop.normal Prop.t

Remove constant string or class from a prop

val check_attr_dealloc_mismatch : IR.PredSymb.t -> IR.PredSymb.t -> unit

Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation

val find_dereference_without_null_check_in_sexp : Predicates.strexp -> (int * IR.PredSymb.path_pos) option

Check whether a sexp contains a dereference without null check, and return the line number and path position

val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn

raise a cast exception

val prop_is_exn : IR.Procname.t -> 'a Prop.t -> bool

check if a prop is an exception

val prop_get_exn_name : IR.Procname.t -> 'a Prop.t -> IR.Typ.Name.t option

when prop is an exception, return the exception name

val lookup_custom_errors : 'a Prop.t -> string option

search in prop contains an error state

val exe_function_call : BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Prop.normal Prop.t -> Paths.Path.t -> (Prop.normal Prop.t * Paths.Path.t) list

Execute the function call and return the list of results with return value

\ No newline at end of file +Tabulation (infer.Biabduction.Tabulation)

Module Biabduction.Tabulation

val remove_constant_string_class : IR.Tenv.t -> 'a Prop.t -> Prop.normal Prop.t

Remove constant string or class from a prop

val find_dereference_without_null_check_in_sexp : Predicates.strexp -> (int * IR.PredSymb.path_pos) option

Check whether a sexp contains a dereference without null check, and return the line number and path position

val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn

raise a cast exception

val prop_is_exn : IR.Procname.t -> 'a Prop.t -> bool

check if a prop is an exception

val prop_get_exn_name : IR.Procname.t -> 'a Prop.t -> IR.Typ.Name.t option

when prop is an exception, return the exception name

val lookup_custom_errors : 'a Prop.t -> string option

search in prop contains an error state

val exe_function_call : BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Prop.normal Prop.t -> Paths.Path.t -> (Prop.normal Prop.t * Paths.Path.t) list

Execute the function call and return the list of results with return value

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction__Attribute/index.html b/website/static/odoc/next/infer/Biabduction__Attribute/index.html index 43ab3430f..c01be4fd0 100644 --- a/website/static/odoc/next/infer/Biabduction__Attribute/index.html +++ b/website/static/odoc/next/infer/Biabduction__Attribute/index.html @@ -1,2 +1,2 @@ -Biabduction__Attribute (infer.Biabduction__Attribute)

Module Biabduction__Attribute

val is_pred : Biabduction.Predicates.atom -> bool

Check whether an atom is used to mark an attribute

val add : IR.Tenv.t -> ?⁠footprint:bool -> ?⁠polarity:bool -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Biabduction.Prop.normal Biabduction.Prop.t

Add an attribute associated to the argument expressions

val add_or_replace : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Replace an attribute associated to the expression

val add_or_replace_check_changed : IR.Tenv.t -> (IR.PredSymb.t -> IR.PredSymb.t -> unit) -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.

val get_all : 'a Biabduction.Prop.t -> Biabduction.Predicates.atom list

Get all the attributes of the prop

val get_for_exp : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom list

Get the attributes associated to the expression, if any

val get_objc_null : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the objc null attribute associated to the expression, if any

val get_observer : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the observer attribute associated to the expression, if any

val get_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the resource attribute associated to the expression, if any

val get_undef : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the undef attribute associated to the expression, if any

val get_wontleak : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the wontleak attribute associated to the expression, if any

val has_dangling_uninit : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> bool

Test for existence of an Adangling DAuninit attribute associated to the exp

val remove : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Remove an attribute

val remove_for_attr : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove all attributes for the given attr

val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove all attributes for the given resource and kind

val map_resource : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Biabduction.Prop.normal Biabduction.Prop.t

Apply f to every resource attribute in the prop

val replace_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t

replace_objc_null lhs rhs. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0

val nullify_exp_with_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t

For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.

val mark_vars_as_undefined : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t

mark Exp.Var's or Exp.Lvar's as undefined

type arith_problem =
| Div0 of IR.Exp.t
| UminusUnsigned of IR.Exp.t * IR.Typ.t

type for arithmetic problems

val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> arith_problem option * Biabduction.Prop.normal Biabduction.Prop.t

Look for an arithmetic problem in exp

val deallocate_stack_vars : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Biabduction.Prop.normal Biabduction.Prop.t

Deallocate the stack variables in pvars, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.

val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Biabduction.Prop.t -> IR.Exp.t option
\ No newline at end of file +Biabduction__Attribute (infer.Biabduction__Attribute)

Module Biabduction__Attribute

val is_pred : Biabduction.Predicates.atom -> bool

Check whether an atom is used to mark an attribute

val add : IR.Tenv.t -> ?⁠footprint:bool -> ?⁠polarity:bool -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Biabduction.Prop.normal Biabduction.Prop.t

Add an attribute associated to the argument expressions

val add_or_replace : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Replace an attribute associated to the expression

val add_or_replace_check_changed : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.

val get_all : 'a Biabduction.Prop.t -> Biabduction.Predicates.atom list

Get all the attributes of the prop

val get_for_exp : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom list

Get the attributes associated to the expression, if any

val get_objc_null : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the objc null attribute associated to the expression, if any

val get_observer : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the observer attribute associated to the expression, if any

val get_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the resource attribute associated to the expression, if any

val get_undef : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the undef attribute associated to the expression, if any

val get_wontleak : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option

Get the wontleak attribute associated to the expression, if any

val has_dangling_uninit : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> bool

Test for existence of an Adangling DAuninit attribute associated to the exp

val remove : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t

Remove an attribute

val remove_for_attr : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove all attributes for the given attr

val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove all attributes for the given resource and kind

val map_resource : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Biabduction.Prop.normal Biabduction.Prop.t

Apply f to every resource attribute in the prop

val replace_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t

replace_objc_null lhs rhs. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0

val nullify_exp_with_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t

For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.

val mark_vars_as_undefined : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t

mark Exp.Var's or Exp.Lvar's as undefined

type arith_problem =
| Div0 of IR.Exp.t
| UminusUnsigned of IR.Exp.t * IR.Typ.t

type for arithmetic problems

val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> arith_problem option * Biabduction.Prop.normal Biabduction.Prop.t

Look for an arithmetic problem in exp

val deallocate_stack_vars : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Biabduction.Prop.normal Biabduction.Prop.t

Deallocate the stack variables in pvars, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.

val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Biabduction.Prop.t -> IR.Exp.t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction__Errdesc/index.html b/website/static/odoc/next/infer/Biabduction__Errdesc/index.html index 03e95dee2..4a157a6de 100644 --- a/website/static/odoc/next/infer/Biabduction__Errdesc/index.html +++ b/website/static/odoc/next/infer/Biabduction__Errdesc/index.html @@ -1,2 +1,2 @@ -Biabduction__Errdesc (infer.Biabduction__Errdesc)

Module Biabduction__Errdesc

val vpath_find : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option

find the dexp, if any, where the given value is stored also return the type of the value if found

val hpred_is_open_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Predicates.hpred -> IR.PredSymb.resource option

Check whether the hpred is a |-> representing a resource in the Racquire state

val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option

Find a program variable assignment to id in the current node or predecessors.

val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option

describe rvalue e as a dexp

val explain_allocation_mismatch : IR.PredSymb.res_action -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Produce a description of a mismatch between an allocation function and a deallocation function

val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of the array access performed in the current instruction, if any.

val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a class cast exception

val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate stack variable error

val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate constant string error

val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> ?⁠is_nullable:bool -> ?⁠is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of which expression is dereferenced in the current instruction, if any.

val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> 'b Biabduction.Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc

return a description explaining value exp in prop in terms of a source expression using the formal parameters of the call

val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a division by zero

val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a condition which is always true or false

val explain_stack_variable_address_escape : IBase.Location.t -> IR.Pvar.t -> IR.DecompiledExp.t option -> Absint.Localise.error_desc

explain the escape of a stack variable address from its scope

val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain unary minus applied to unsigned expression

val explain_leak : IR.Tenv.t -> Biabduction.Predicates.hpred -> 'a Biabduction.Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc

Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.

val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc

explain a test for NULL of a dereferenced pointer

val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a

warn at the given location

val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?⁠is_nullable:bool -> Biabduction.Predicates.inst -> Absint.Localise.access option
\ No newline at end of file +Biabduction__Errdesc (infer.Biabduction__Errdesc)

Module Biabduction__Errdesc

val vpath_find : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option

find the dexp, if any, where the given value is stored also return the type of the value if found

val hpred_is_open_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Predicates.hpred -> IR.PredSymb.resource option

Check whether the hpred is a |-> representing a resource in the Racquire state

val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option

Find a program variable assignment to id in the current node or predecessors.

val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option

describe rvalue e as a dexp

val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of the array access performed in the current instruction, if any.

val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a class cast exception

val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate stack variable error

val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc

Explain a deallocate constant string error

val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> ?⁠is_nullable:bool -> ?⁠is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc

Produce a description of which expression is dereferenced in the current instruction, if any.

val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?⁠use_buckets:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> 'b Biabduction.Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc

return a description explaining value exp in prop in terms of a source expression using the formal parameters of the call

val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a division by zero

val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain a condition which is always true or false

val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc

explain unary minus applied to unsigned expression

val explain_leak : IR.Tenv.t -> Biabduction.Predicates.hpred -> 'a Biabduction.Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc

Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.

val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc

explain a test for NULL of a dereferenced pointer

val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a

warn at the given location

val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?⁠is_nullable:bool -> Biabduction.Predicates.inst -> Absint.Localise.access option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction__Exceptions/index.html b/website/static/odoc/next/infer/Biabduction__Exceptions/index.html index 38fd293e2..c31cdebf8 100644 --- a/website/static/odoc/next/infer/Biabduction__Exceptions/index.html +++ b/website/static/odoc/next/infer/Biabduction__Exceptions/index.html @@ -1,2 +1,2 @@ -Biabduction__Exceptions (infer.Biabduction__Exceptions)

Module Biabduction__Exceptions

Biabduction uses exceptions to store issues in summaries

exception Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception Array_of_pointsto of IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Bad_footprint of IBase.Logging.ocaml_pos
exception Biabd_use_after_free of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Cannot_star of IBase.Logging.ocaml_pos
exception Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Deallocate_stack_variable of Absint.Localise.error_desc
exception Deallocate_static_memory of Absint.Localise.error_desc
exception Deallocation_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Inherently_dangerous_function of Absint.Localise.error_desc
exception Internal_error of Absint.Localise.error_desc
exception Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Skip_function of Absint.Localise.error_desc
exception Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Stack_variable_address_escape of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Symexec_memory_error of IBase.Logging.ocaml_pos
exception Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool

Return true if the exception is not serious and should be handled in timeout mode

val print_exception_html : string -> exn -> unit

print a description of the exception to the html output

val recognize_exception : exn -> Absint.IssueToReport.t
\ No newline at end of file +Biabduction__Exceptions (infer.Biabduction__Exceptions)

Module Biabduction__Exceptions

Biabduction uses exceptions to store issues in summaries

exception Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception Array_of_pointsto of IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Bad_footprint of IBase.Logging.ocaml_pos
exception Cannot_star of IBase.Logging.ocaml_pos
exception Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Deallocate_stack_variable of Absint.Localise.error_desc
exception Deallocate_static_memory of Absint.Localise.error_desc
exception Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Inherently_dangerous_function of Absint.Localise.error_desc
exception Internal_error of Absint.Localise.error_desc
exception Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Skip_function of Absint.Localise.error_desc
exception Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Symexec_memory_error of IBase.Logging.ocaml_pos
exception Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool

Return true if the exception is not serious and should be handled in timeout mode

val print_exception_html : string -> exn -> unit

print a description of the exception to the html output

val recognize_exception : exn -> Absint.IssueToReport.t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Biabduction__Tabulation/index.html b/website/static/odoc/next/infer/Biabduction__Tabulation/index.html index 82dcf55c3..52ec0a83e 100644 --- a/website/static/odoc/next/infer/Biabduction__Tabulation/index.html +++ b/website/static/odoc/next/infer/Biabduction__Tabulation/index.html @@ -1,2 +1,2 @@ -Biabduction__Tabulation (infer.Biabduction__Tabulation)

Module Biabduction__Tabulation

val remove_constant_string_class : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove constant string or class from a prop

val check_attr_dealloc_mismatch : IR.PredSymb.t -> IR.PredSymb.t -> unit

Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation

val find_dereference_without_null_check_in_sexp : Biabduction.Predicates.strexp -> (int * IR.PredSymb.path_pos) option

Check whether a sexp contains a dereference without null check, and return the line number and path position

val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn

raise a cast exception

val prop_is_exn : IR.Procname.t -> 'a Biabduction.Prop.t -> bool

check if a prop is an exception

val prop_get_exn_name : IR.Procname.t -> 'a Biabduction.Prop.t -> IR.Typ.Name.t option

when prop is an exception, return the exception name

val lookup_custom_errors : 'a Biabduction.Prop.t -> string option

search in prop contains an error state

val exe_function_call : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:Biabduction.BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Paths.Path.t -> (Biabduction.Prop.normal Biabduction.Prop.t * Biabduction.Paths.Path.t) list

Execute the function call and return the list of results with return value

\ No newline at end of file +Biabduction__Tabulation (infer.Biabduction__Tabulation)

Module Biabduction__Tabulation

val remove_constant_string_class : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove constant string or class from a prop

val find_dereference_without_null_check_in_sexp : Biabduction.Predicates.strexp -> (int * IR.PredSymb.path_pos) option

Check whether a sexp contains a dereference without null check, and return the line number and path position

val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn

raise a cast exception

val prop_is_exn : IR.Procname.t -> 'a Biabduction.Prop.t -> bool

check if a prop is an exception

val prop_get_exn_name : IR.Procname.t -> 'a Biabduction.Prop.t -> IR.Typ.Name.t option

when prop is an exception, return the exception name

val lookup_custom_errors : 'a Biabduction.Prop.t -> string option

search in prop contains an error state

val exe_function_call : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:Biabduction.BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Paths.Path.t -> (Biabduction.Prop.normal Biabduction.Prop.t * Biabduction.Paths.Path.t) list

Execute the function call and return the list of results with return value

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/ClassLoads/index.html b/website/static/odoc/next/infer/Checkers/ClassLoads/index.html deleted file mode 100644 index ff1baff1b..000000000 --- a/website/static/odoc/next/infer/Checkers/ClassLoads/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -ClassLoads (infer.Checkers.ClassLoads)

Module Checkers.ClassLoads

val analyze_procedure : ClassLoadsDomain.summary Absint.InterproceduralAnalysis.t -> ClassLoadsDomain.summary option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/Event/index.html b/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/Event/index.html deleted file mode 100644 index 15f495d2d..000000000 --- a/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/Event/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Event (infer.Checkers.ClassLoadsDomain.Event)

Module ClassLoadsDomain.Event

type elem_t = ClassLoad.t
type t = private {
elem : elem_t;
loc : IBase.Location.t;
trace : Absint.CallSite.t list;
}

An elem which occured at loc, after the chain of steps (usually calls) in trace.

Both pp and describe simply call the same function on the trace element.

include Absint.ExplicitTrace.Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.IStd.Caml.Set.OrderedType
type t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := t
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unit

Pretty printer used for trace construction; pp is used for debug output.

val make : elem_t -> IBase.Location.t -> t
val map : f:(elem_t -> elem_t) -> t -> t
val get_loc : t -> IBase.Location.t

Starting location of the trace: this is either loc if trace==[], or the head of trace.

val make_loc_trace : ?⁠nesting:int -> t -> Absint.Errlog.loc_trace
val with_callsite : t -> Absint.CallSite.t -> t

Push given callsite onto trace, extending the call chain by one.

module FiniteSet : Absint.ExplicitTrace.FiniteSet with type FiniteSet.elt = t

A powerset of traces.

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/index.html b/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/index.html deleted file mode 100644 index 037b98811..000000000 --- a/website/static/odoc/next/infer/Checkers/ClassLoadsDomain/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -ClassLoadsDomain (infer.Checkers.ClassLoadsDomain)

Module Checkers.ClassLoadsDomain

module F = Stdlib.Format
module ClassLoad : Absint.ExplicitTrace.Element with type Element.t = string
include Absint.AbstractDomain.WithBottom
include Absint.AbstractDomain.S
include Absint.AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t

The bottom value of the domain.

val is_bottom : t -> bool

Return true if this is the bottom value

type summary = t
val pp_summary : F.formatter -> summary -> unit
val mem_typename : IR.Typ.Name.t -> t -> bool
val add_typename : IBase.Location.t -> t -> IR.Typ.Name.t -> t
val integrate_summary : IR.Procname.t -> IBase.Location.t -> t -> summary -> t
val iter : (Event.t -> unit) -> t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/Summary/index.html b/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/Summary/index.html new file mode 100644 index 000000000..4f843aee0 --- /dev/null +++ b/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/Summary/index.html @@ -0,0 +1,2 @@ + +Summary (infer.Checkers.ConfigChecksBetweenMarkers.Summary)

Module ConfigChecksBetweenMarkers.Summary

type t
val pp : Stdlib.Format.formatter -> t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/index.html b/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/index.html new file mode 100644 index 000000000..3f126736d --- /dev/null +++ b/website/static/odoc/next/infer/Checkers/ConfigChecksBetweenMarkers/index.html @@ -0,0 +1,2 @@ + +ConfigChecksBetweenMarkers (infer.Checkers.ConfigChecksBetweenMarkers)

Module Checkers.ConfigChecksBetweenMarkers

module Summary : sig ... end
val checker : Summary.t Absint.InterproceduralAnalysis.t -> Summary.t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/FbGKInteraction/index.html b/website/static/odoc/next/infer/Checkers/FbGKInteraction/index.html new file mode 100644 index 000000000..f61cec687 --- /dev/null +++ b/website/static/odoc/next/infer/Checkers/FbGKInteraction/index.html @@ -0,0 +1,2 @@ + +FbGKInteraction (infer.Checkers.FbGKInteraction)

Module Checkers.FbGKInteraction

val is_config_class : IR.Pvar.t -> bool
val is_config_check : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_start : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_end : IR.Tenv.t -> IR.Procname.t -> bool
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers/index.html b/website/static/odoc/next/infer/Checkers/index.html index 7ebf0fa58..d659f5baa 100644 --- a/website/static/odoc/next/infer/Checkers/index.html +++ b/website/static/odoc/next/infer/Checkers/index.html @@ -1,2 +1,2 @@ -Checkers (infer.Checkers)

Module Checkers

module AddressTaken : sig ... end
module AnnotationReachability : sig ... end
module AnnotationReachabilityDomain : sig ... end
module ClassLoads : sig ... end
module ClassLoadsDomain : sig ... end
module Control : sig ... end
module Dominators : sig ... end
module FragmentRetainsViewChecker : sig ... end
module FunctionPointers : sig ... end
module Impurity : sig ... end
module ImpurityDomain : sig ... end
module InefficientKeysetIterator : sig ... end
module LithoDomain : sig ... end
module Liveness : sig ... end
module LoopInvariant : sig ... end
module Loop_control : sig ... end
module NullabilityPreanalysis : sig ... end
module PrintfArgs : sig ... end
module Purity : sig ... end
module PurityDomain : sig ... end
module PurityModels : sig ... end
module ReachingDefs : sig ... end
module RequiredProps : sig ... end
module SelfInBlock : sig ... end
module SimpleChecker : sig ... end
module Siof : sig ... end
module SiofDomain : sig ... end
module SiofTrace : sig ... end
module Uninit : sig ... end
module UninitDomain : sig ... end
\ No newline at end of file +Checkers (infer.Checkers)

Module Checkers

module AddressTaken : sig ... end
module AnnotationReachability : sig ... end
module AnnotationReachabilityDomain : sig ... end
module ConfigChecksBetweenMarkers : sig ... end
module Control : sig ... end
module Dominators : sig ... end
module FbGKInteraction : sig ... end
module FragmentRetainsViewChecker : sig ... end
module FunctionPointers : sig ... end
module Impurity : sig ... end
module ImpurityDomain : sig ... end
module InefficientKeysetIterator : sig ... end
module LithoDomain : sig ... end
module Liveness : sig ... end
module LoopInvariant : sig ... end
module Loop_control : sig ... end
module NullabilityPreanalysis : sig ... end
module PrintfArgs : sig ... end
module Purity : sig ... end
module PurityDomain : sig ... end
module PurityModels : sig ... end
module ReachingDefs : sig ... end
module RequiredProps : sig ... end
module SelfInBlock : sig ... end
module SimpleChecker : sig ... end
module Siof : sig ... end
module SiofDomain : sig ... end
module SiofTrace : sig ... end
module Uninit : sig ... end
module UninitDomain : sig ... end
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ClassLoads/index.html b/website/static/odoc/next/infer/Checkers__ClassLoads/index.html deleted file mode 100644 index d7b08ce60..000000000 --- a/website/static/odoc/next/infer/Checkers__ClassLoads/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Checkers__ClassLoads (infer.Checkers__ClassLoads)

Module Checkers__ClassLoads

val analyze_procedure : Checkers.ClassLoadsDomain.summary Absint.InterproceduralAnalysis.t -> Checkers.ClassLoadsDomain.summary option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/Event/index.html b/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/Event/index.html deleted file mode 100644 index 8cdda4551..000000000 --- a/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/Event/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Event (infer.Checkers__ClassLoadsDomain.Event)

Module Checkers__ClassLoadsDomain.Event

type elem_t = ClassLoad.t
type t = private {
elem : elem_t;
loc : IBase.Location.t;
trace : Absint.CallSite.t list;
}

An elem which occured at loc, after the chain of steps (usually calls) in trace.

Both pp and describe simply call the same function on the trace element.

include Absint.ExplicitTrace.Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.IStd.Caml.Set.OrderedType
type t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := t
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unit

Pretty printer used for trace construction; pp is used for debug output.

val make : elem_t -> IBase.Location.t -> t
val map : f:(elem_t -> elem_t) -> t -> t
val get_loc : t -> IBase.Location.t

Starting location of the trace: this is either loc if trace==[], or the head of trace.

val make_loc_trace : ?⁠nesting:int -> t -> Absint.Errlog.loc_trace
val with_callsite : t -> Absint.CallSite.t -> t

Push given callsite onto trace, extending the call chain by one.

module FiniteSet : Absint.ExplicitTrace.FiniteSet with type FiniteSet.elt = t

A powerset of traces.

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/index.html b/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/index.html deleted file mode 100644 index e101b944a..000000000 --- a/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Checkers__ClassLoadsDomain (infer.Checkers__ClassLoadsDomain)

Module Checkers__ClassLoadsDomain

module F = Stdlib.Format
module ClassLoad : Absint.ExplicitTrace.Element with type Element.t = string
include Absint.AbstractDomain.WithBottom
include Absint.AbstractDomain.S
include Absint.AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t

The bottom value of the domain.

val is_bottom : t -> bool

Return true if this is the bottom value

type summary = t
val pp_summary : F.formatter -> summary -> unit
val mem_typename : IR.Typ.Name.t -> t -> bool
val add_typename : IBase.Location.t -> t -> IR.Typ.Name.t -> t
val integrate_summary : IR.Procname.t -> IBase.Location.t -> t -> summary -> t
val iter : (Event.t -> unit) -> t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ClassLoads/.dune-keep b/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/.dune-keep similarity index 100% rename from website/static/odoc/next/infer/Checkers__ClassLoads/.dune-keep rename to website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/.dune-keep diff --git a/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/Summary/index.html b/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/Summary/index.html new file mode 100644 index 000000000..e6afec57c --- /dev/null +++ b/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/Summary/index.html @@ -0,0 +1,2 @@ + +Summary (infer.Checkers__ConfigChecksBetweenMarkers.Summary)

Module Checkers__ConfigChecksBetweenMarkers.Summary

type t
val pp : Stdlib.Format.formatter -> t -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/index.html b/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/index.html new file mode 100644 index 000000000..b48c2d737 --- /dev/null +++ b/website/static/odoc/next/infer/Checkers__ConfigChecksBetweenMarkers/index.html @@ -0,0 +1,2 @@ + +Checkers__ConfigChecksBetweenMarkers (infer.Checkers__ConfigChecksBetweenMarkers)

Module Checkers__ConfigChecksBetweenMarkers

module Summary : sig ... end
val checker : Summary.t Absint.InterproceduralAnalysis.t -> Summary.t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Checkers__ClassLoadsDomain/.dune-keep b/website/static/odoc/next/infer/Checkers__FbGKInteraction/.dune-keep similarity index 100% rename from website/static/odoc/next/infer/Checkers__ClassLoadsDomain/.dune-keep rename to website/static/odoc/next/infer/Checkers__FbGKInteraction/.dune-keep diff --git a/website/static/odoc/next/infer/Checkers__FbGKInteraction/index.html b/website/static/odoc/next/infer/Checkers__FbGKInteraction/index.html new file mode 100644 index 000000000..f4fb1be51 --- /dev/null +++ b/website/static/odoc/next/infer/Checkers__FbGKInteraction/index.html @@ -0,0 +1,2 @@ + +Checkers__FbGKInteraction (infer.Checkers__FbGKInteraction)

Module Checkers__FbGKInteraction

val is_config_class : IR.Pvar.t -> bool
val is_config_check : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_start : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_end : IR.Tenv.t -> IR.Procname.t -> bool
\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend/Ast_expressions/index.html b/website/static/odoc/next/infer/ClangFrontend/Ast_expressions/index.html index 16af8a83b..3d563de55 100644 --- a/website/static/odoc/next/infer/ClangFrontend/Ast_expressions/index.html +++ b/website/static/odoc/next/infer/ClangFrontend/Ast_expressions/index.html @@ -1,2 +1,2 @@ -Ast_expressions (infer.ClangFrontend.Ast_expressions)

Module ClangFrontend.Ast_expressions

val create_pointer_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?⁠quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate an expression with a conditional x <=> x?1:0

val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate the logical negation of an expression with a conditional !x <=> x?0:1

\ No newline at end of file +Ast_expressions (infer.ClangFrontend.Ast_expressions)

Module ClangFrontend.Ast_expressions

val create_pointer_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_void_type : ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?⁠quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate an expression with a conditional x <=> x?1:0

val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate the logical negation of an expression with a conditional !x <=> x?0:1

\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend/CAddImplicitDeallocImpl/index.html b/website/static/odoc/next/infer/ClangFrontend/CAddImplicitDeallocImpl/index.html new file mode 100644 index 000000000..08f86d007 --- /dev/null +++ b/website/static/odoc/next/infer/ClangFrontend/CAddImplicitDeallocImpl/index.html @@ -0,0 +1,2 @@ + +CAddImplicitDeallocImpl (infer.ClangFrontend.CAddImplicitDeallocImpl)

Module ClangFrontend.CAddImplicitDeallocImpl

val process : IR.Cfg.t -> IR.Tenv.t -> unit

This models ARC implementation of dealloc, see https://clang.llvm.org/docs/AutomaticReferenceCounting.html#dealloc. Dealloc methods can be added to ObjC classes to free C memory for example, but the deallocation of the ObjC instance variables of the object is done automatically. So here we add this explicitely to Infer: we add calls to dealloc of the ObjC instance variables. Here we assume that every ObjC class has already a dealloc method, because if it doesn't exist we add an empty method in CFrontend_decl.create_and_process_dealloc_objc_impl TODO(T68411500): add calls to dealloc of the superclass.

\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend/CFrontend_config/index.html b/website/static/odoc/next/infer/ClangFrontend/CFrontend_config/index.html index c5db64424..e9c249a0b 100644 --- a/website/static/odoc/next/infer/ClangFrontend/CFrontend_config/index.html +++ b/website/static/odoc/next/infer/ClangFrontend/CFrontend_config/index.html @@ -1,2 +1,2 @@ -CFrontend_config (infer.ClangFrontend.CFrontend_config)

Module ClangFrontend.CFrontend_config

type clang_lang =
| C
| CPP
| ObjC
| ObjCPP
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context = {
lang : clang_lang;
source_file : IBase.SourceFile.t;
integer_type_widths : IR.Typ.IntegerWidths.t;
}
type decl_trans_context = [
| `DeclTraversal
| `Translation
]
val alloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string

Script to run our own clang. The argument is expected to be either "" or "++".

val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangPointers.Map.t IStdlib.IStd.ref

Map from enum constants pointers to their predecesor and their sil value

val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref

Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found

val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
\ No newline at end of file +CFrontend_config (infer.ClangFrontend.CFrontend_config)

Module ClangFrontend.CFrontend_config

type clang_lang =
| C
| CPP
| ObjC
| ObjCPP
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context = {
lang : clang_lang;
source_file : IBase.SourceFile.t;
integer_type_widths : IR.Typ.IntegerWidths.t;
}
type decl_trans_context = [
| `DeclTraversal
| `Translation
]
val alloc : string
val dealloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string

Script to run our own clang. The argument is expected to be either "" or "++".

val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangPointers.Map.t IStdlib.IStd.ref

Map from enum constants pointers to their predecesor and their sil value

val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref

Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found

val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend/index.html b/website/static/odoc/next/infer/ClangFrontend/index.html index c012e1815..d03f429cf 100644 --- a/website/static/odoc/next/infer/ClangFrontend/index.html +++ b/website/static/odoc/next/infer/ClangFrontend/index.html @@ -1,2 +1,2 @@ -ClangFrontend (infer.ClangFrontend)

Module ClangFrontend

module AstToRangeMap : sig ... end
module Ast_expressions : sig ... end
module CArithmetic_trans : sig ... end
module CAst_utils : sig ... end
module CContext : sig ... end
module CEnum_decl : sig ... end
module CField_decl : sig ... end
module CFrontend : sig ... end
module CFrontend_config : sig ... end
module CFrontend_decl : sig ... end
module CFrontend_errors : sig ... end
module CGeneral_utils : sig ... end
module CLocation : sig ... end
module CMethodProperties : sig ... end
module CMethodSignature : sig ... end
module CMethod_trans : sig ... end
module CModule_type : sig ... end
module CScope : sig ... end
module CTrans : sig ... end
module CTrans_models : sig ... end
module CTrans_utils : sig ... end
module CType : sig ... end
module CType_decl : sig ... end
module CType_to_sil_type : sig ... end
module CVar_decl : sig ... end
module Capture : sig ... end
module ClangCommand : sig ... end
module ClangPointers : sig ... end
module ClangQuotes : sig ... end
module ClangWrapper : sig ... end
module Clang_ast_extend : sig ... end
module ObjcCategory_decl : sig ... end
module ObjcInterface_decl : sig ... end
module ObjcMethod_decl : sig ... end
module ObjcProperty_decl : sig ... end
module ObjcProtocol_decl : sig ... end
module ProcessAST : sig ... end
module SwitchCase : sig ... end
\ No newline at end of file +ClangFrontend (infer.ClangFrontend)

Module ClangFrontend

module AstToRangeMap : sig ... end
module Ast_expressions : sig ... end
module CAddImplicitDeallocImpl : sig ... end
module CArithmetic_trans : sig ... end
module CAst_utils : sig ... end
module CContext : sig ... end
module CEnum_decl : sig ... end
module CField_decl : sig ... end
module CFrontend : sig ... end
module CFrontend_config : sig ... end
module CFrontend_decl : sig ... end
module CFrontend_errors : sig ... end
module CGeneral_utils : sig ... end
module CLocation : sig ... end
module CMethodProperties : sig ... end
module CMethodSignature : sig ... end
module CMethod_trans : sig ... end
module CModule_type : sig ... end
module CScope : sig ... end
module CTrans : sig ... end
module CTrans_models : sig ... end
module CTrans_utils : sig ... end
module CType : sig ... end
module CType_decl : sig ... end
module CType_to_sil_type : sig ... end
module CVar_decl : sig ... end
module Capture : sig ... end
module ClangCommand : sig ... end
module ClangPointers : sig ... end
module ClangQuotes : sig ... end
module ClangWrapper : sig ... end
module Clang_ast_extend : sig ... end
module ObjcCategory_decl : sig ... end
module ObjcInterface_decl : sig ... end
module ObjcMethod_decl : sig ... end
module ObjcProperty_decl : sig ... end
module ObjcProtocol_decl : sig ... end
module ProcessAST : sig ... end
module SwitchCase : sig ... end
\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend__Ast_expressions/index.html b/website/static/odoc/next/infer/ClangFrontend__Ast_expressions/index.html index 9cfdbac84..8d24ca4f1 100644 --- a/website/static/odoc/next/infer/ClangFrontend__Ast_expressions/index.html +++ b/website/static/odoc/next/infer/ClangFrontend__Ast_expressions/index.html @@ -1,2 +1,2 @@ -ClangFrontend__Ast_expressions (infer.ClangFrontend__Ast_expressions)

Module ClangFrontend__Ast_expressions

val create_pointer_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?⁠quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate an expression with a conditional x <=> x?1:0

val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate the logical negation of an expression with a conditional !x <=> x?0:1

\ No newline at end of file +ClangFrontend__Ast_expressions (infer.ClangFrontend__Ast_expressions)

Module ClangFrontend__Ast_expressions

val create_pointer_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?⁠quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_void_type : ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?⁠quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate an expression with a conditional x <=> x?1:0

val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt

We translate the logical negation of an expression with a conditional !x <=> x?0:1

\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/.dune-keep b/website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/.dune-keep new file mode 100644 index 000000000..e69de29bb diff --git a/website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/index.html b/website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/index.html new file mode 100644 index 000000000..0091a395d --- /dev/null +++ b/website/static/odoc/next/infer/ClangFrontend__CAddImplicitDeallocImpl/index.html @@ -0,0 +1,2 @@ + +ClangFrontend__CAddImplicitDeallocImpl (infer.ClangFrontend__CAddImplicitDeallocImpl)

Module ClangFrontend__CAddImplicitDeallocImpl

val process : IR.Cfg.t -> IR.Tenv.t -> unit

This models ARC implementation of dealloc, see https://clang.llvm.org/docs/AutomaticReferenceCounting.html#dealloc. Dealloc methods can be added to ObjC classes to free C memory for example, but the deallocation of the ObjC instance variables of the object is done automatically. So here we add this explicitely to Infer: we add calls to dealloc of the ObjC instance variables. Here we assume that every ObjC class has already a dealloc method, because if it doesn't exist we add an empty method in CFrontend_decl.create_and_process_dealloc_objc_impl TODO(T68411500): add calls to dealloc of the superclass.

\ No newline at end of file diff --git a/website/static/odoc/next/infer/ClangFrontend__CFrontend_config/index.html b/website/static/odoc/next/infer/ClangFrontend__CFrontend_config/index.html index 661e6b370..92d29c713 100644 --- a/website/static/odoc/next/infer/ClangFrontend__CFrontend_config/index.html +++ b/website/static/odoc/next/infer/ClangFrontend__CFrontend_config/index.html @@ -1,2 +1,2 @@ -ClangFrontend__CFrontend_config (infer.ClangFrontend__CFrontend_config)

Module ClangFrontend__CFrontend_config

type clang_lang =
| C
| CPP
| ObjC
| ObjCPP
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context = {
lang : clang_lang;
source_file : IBase.SourceFile.t;
integer_type_widths : IR.Typ.IntegerWidths.t;
}
type decl_trans_context = [
| `DeclTraversal
| `Translation
]
val alloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string

Script to run our own clang. The argument is expected to be either "" or "++".

val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangFrontend.ClangPointers.Map.t IStdlib.IStd.ref

Map from enum constants pointers to their predecesor and their sil value

val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc ClangFrontend.Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref

Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found

val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
\ No newline at end of file +ClangFrontend__CFrontend_config (infer.ClangFrontend__CFrontend_config)

Module ClangFrontend__CFrontend_config

type clang_lang =
| C
| CPP
| ObjC
| ObjCPP
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context = {
lang : clang_lang;
source_file : IBase.SourceFile.t;
integer_type_widths : IR.Typ.IntegerWidths.t;
}
type decl_trans_context = [
| `DeclTraversal
| `Translation
]
val alloc : string
val dealloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string

Script to run our own clang. The argument is expected to be either "" or "++".

val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangFrontend.ClangPointers.Map.t IStdlib.IStd.ref

Map from enum constants pointers to their predecesor and their sil value

val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc ClangFrontend.Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref

Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found

val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase/Checker/index.html b/website/static/odoc/next/infer/IBase/Checker/index.html index 43861674b..496335eb2 100644 --- a/website/static/odoc/next/infer/IBase/Checker/index.html +++ b/website/static/odoc/next/infer/IBase/Checker/index.html @@ -1,2 +1,2 @@ -Checker (infer.IBase.Checker)

Module IBase.Checker

type t =
| AnnotationReachability
| Biabduction
| BufferOverrunAnalysis
| BufferOverrunChecker
| ClassLoads
| Cost
| Eradicate
| FragmentRetainsView
| ImmutableCast
| Impurity
| InefficientKeysetIterator
| Linters
| LithoRequiredProps
| Liveness
| LoopHoisting
| NullsafeDeprecated
| PrintfArgs
| Pulse
| Purity
| Quandary
| RacerD
| ResourceLeakLabExercise
| SIOF
| SelfInBlock
| Starvation
| TOPL
| Uninit
val equal : t -> t -> bool
val all : t list
type support =
| NoSupport

checker does not run at all for this language

| ExperimentalSupport

checker runs but is not expected to give reasonable results

| Support

checker is expected to give reasonable results

per-language support for each checker

type cli_flags = {
deprecated : string list;

More command-line flags, similar to ~deprecated arguments in CommandLineOption.

show_in_help : bool;
}
type kind =
| UserFacing of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

}

can report issues to users

| UserFacingDeprecated of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

deprecation_message : string;
}

can report issues to users but should probably be deleted from infer

| Internal

Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental.

| Exercise

reserved for the "resource leak" lab exercise

type config = {
id : string;

Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line.

kind : kind;
support : Language.t -> support;
short_documentation : string;

used in man pages and as a short intro on the website

cli_flags : cli_flags option;

If None then the checker cannot be enabled/disabled from the command line.

enabled_by_default : bool;
activates : t list;

list of checkers that get enabled when this checker is enabled

}
val config : t -> config
val get_id : t -> string

get_id c is (config c).id

val from_id : string -> t option
\ No newline at end of file +Checker (infer.IBase.Checker)

Module IBase.Checker

type t =
| AnnotationReachability
| Biabduction
| BufferOverrunAnalysis
| BufferOverrunChecker
| ConfigChecksBetweenMarkers
| Cost
| Eradicate
| FragmentRetainsView
| ImmutableCast
| Impurity
| InefficientKeysetIterator
| Linters
| LithoRequiredProps
| Liveness
| LoopHoisting
| NullsafeDeprecated
| PrintfArgs
| Pulse
| Purity
| Quandary
| RacerD
| ResourceLeakLabExercise
| SIOF
| SelfInBlock
| Starvation
| TOPL
| Uninit
val equal : t -> t -> bool
val all : t list
type support =
| NoSupport

checker does not run at all for this language

| ExperimentalSupport

checker runs but is not expected to give reasonable results

| Support

checker is expected to give reasonable results

per-language support for each checker

type cli_flags = {
deprecated : string list;

More command-line flags, similar to ~deprecated arguments in CommandLineOption.

show_in_help : bool;
}
type kind =
| UserFacing of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

}

can report issues to users

| UserFacingDeprecated of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

deprecation_message : string;
}

can report issues to users but should probably be deleted from infer

| Internal

Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental.

| Exercise

reserved for the "resource leak" lab exercise

type config = {
id : string;

Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line.

kind : kind;
support : Language.t -> support;
short_documentation : string;

used in man pages and as a short intro on the website

cli_flags : cli_flags option;

If None then the checker cannot be enabled/disabled from the command line.

enabled_by_default : bool;
activates : t list;

list of checkers that get enabled when this checker is enabled

}
val config : t -> config
val get_id : t -> string

get_id c is (config c).id

val from_id : string -> t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase/Config/index.html b/website/static/odoc/next/infer/IBase/Config/index.html index 03d383c0a..31472841a 100644 --- a/website/static/odoc/next/infer/IBase/Config/index.html +++ b/website/static/odoc/next/infer/IBase/Config/index.html @@ -1,2 +1,2 @@ -Config (infer.IBase.Config)

Module IBase.Config

type os_type =
| Unix
| Win32
| Cygwin
type build_system =
| BAnt
| BBuck
| BClang
| BGradle
| BJava
| BJavac
| BMake
| BMvn
| BNdk
| BXcode
type scheduler =
| File
| Restart
| SyntacticCallGraph
val equal_scheduler : scheduler -> scheduler -> bool
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env

Constant configuration values

val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string

marker to recognize methods generated by javalib to eliminate lambdas

val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string

Configuration values specified by command-line options

type iphoneos_target_sdk_version_path_regex = {
path : Str.regexp;
version : string;
}
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val class_loads_roots : IStdlib.IStd.String.Set.t
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : Checker.t list
val help_issue_type : IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool

Configuration values derived from command-line options

val dynamic_dispatch : bool
val toplevel_results_dir : string

In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

val is_in_custom_symbols : string -> string -> bool

Does named symbol match any prefix in the named custom symbol list?

val java_package_is_external : string -> bool

Check if a Java package is external to the repository

val execution_id : IStdlib.IStd.Int64.t

Global variables with initial values specified by command-line options

val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref

Command Line Interface Documentation

val print_usage_exit : unit -> 'a
\ No newline at end of file +Config (infer.IBase.Config)

Module IBase.Config

type os_type =
| Unix
| Win32
| Cygwin
type build_system =
| BAnt
| BBuck
| BClang
| BGradle
| BJava
| BJavac
| BMake
| BMvn
| BNdk
| BXcode
type scheduler =
| File
| Restart
| SyntacticCallGraph
val equal_scheduler : scheduler -> scheduler -> bool
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env

Constant configuration values

val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string

marker to recognize methods generated by javalib to eliminate lambdas

val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string

Configuration values specified by command-line options

type iphoneos_target_sdk_version_path_regex = {
path : Str.regexp;
version : string;
}
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : Checker.t list
val help_issue_type : IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val pmd_xml : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_abort : string list
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool

Configuration values derived from command-line options

val dynamic_dispatch : bool
val toplevel_results_dir : string

In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

val is_in_custom_symbols : string -> string -> bool

Does named symbol match any prefix in the named custom symbol list?

val java_package_is_external : string -> bool

Check if a Java package is external to the repository

val execution_id : IStdlib.IStd.Int64.t

Global variables with initial values specified by command-line options

val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref

Command Line Interface Documentation

val print_usage_exit : unit -> 'a
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase/IssueType/index.html b/website/static/odoc/next/infer/IBase/IssueType/index.html index 8003c75b5..4ea88dafb 100644 --- a/website/static/odoc/next/infer/IBase/IssueType/index.html +++ b/website/static/odoc/next/infer/IBase/IssueType/index.html @@ -1,2 +1,2 @@ -IssueType (infer.IBase.IssueType)

Module IBase.IssueType

type visibility =
| User

always add to error log

| Developer

only add to error log in some debug modes

| Silent

never add to error log

visibility of the issue type

val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
type severity =
| Like
| Info
| Advice
| Warning
| Error

severity of the report

val compare_severity : severity -> severity -> int
val equal_severity : severity -> severity -> bool
val all_of_severity : severity list
val string_of_severity : severity -> string
type t = private {
unique_id : string;
checker : Checker.t;
visibility : visibility;
user_documentation : string option;
mutable default_severity : severity;

used for documentation but can be overriden at report time

mutable enabled : bool;
mutable hum : string;
mutable doc_url : string option;
mutable linters_def_file : string option;
}
val compare : t -> t -> int
val equal : t -> t -> bool
val all_issues : unit -> t list

all the issues declared so far

val pp : Stdlib.Format.formatter -> t -> unit

pretty print a localised string

val find_from_string : id:string -> t option

return the issue type if it was previously registered

val register_from_string : ?⁠enabled:bool -> ?⁠hum:string -> ?⁠doc_url:string -> ?⁠linters_def_file:string -> id:string -> ?⁠visibility:visibility -> ?⁠user_documentation:string -> severity -> Checker.t -> t

Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.

val checker_can_report : Checker.t -> t -> bool

Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val biabd_registered_observer_being_deallocated : t
val biabd_stack_variable_address_escape : t
val biabd_use_after_free : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t

Tainted values is used in array accesses, causing buffer over/underruns

val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t

Warning name when a performance critical method directly or indirectly calls a method allocating memory

val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t

Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

val checkers_expensive_overrides_unexpensive : t

Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val class_load : t
val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val deallocation_mismatch : t
val divide_by_zero : t
val do_not_report : t

an issue type that should never be reported

val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:CostKind.t -> t
\ No newline at end of file +IssueType (infer.IBase.IssueType)

Module IBase.IssueType

type visibility =
| User

always add to error log

| Developer

only add to error log in some debug modes

| Silent

never add to error log

visibility of the issue type

val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
type severity =
| Like
| Info
| Advice
| Warning
| Error

severity of the report

val compare_severity : severity -> severity -> int
val equal_severity : severity -> severity -> bool
val all_of_severity : severity list
val string_of_severity : severity -> string
type t = private {
unique_id : string;
checker : Checker.t;
visibility : visibility;
user_documentation : string option;
mutable default_severity : severity;

used for documentation but can be overriden at report time

mutable enabled : bool;
mutable hum : string;
mutable doc_url : string option;
mutable linters_def_file : string option;
}
val compare : t -> t -> int
val equal : t -> t -> bool
val all_issues : unit -> t list

all the issues declared so far

val pp : Stdlib.Format.formatter -> t -> unit

pretty print a localised string

val find_from_string : id:string -> t option

return the issue type if it was previously registered

val register_from_string : ?⁠enabled:bool -> ?⁠is_cost_issue:bool -> ?⁠hum:string -> ?⁠doc_url:string -> ?⁠linters_def_file:string -> id:string -> ?⁠visibility:visibility -> ?⁠user_documentation:string -> severity -> Checker.t -> t

Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.

val checker_can_report : Checker.t -> t -> bool

Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t

Tainted values is used in array accesses, causing buffer over/underruns

val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t

Warning name when a performance critical method directly or indirectly calls a method allocating memory

val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t

Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

val checkers_expensive_overrides_unexpensive : t

Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val config_checks_between_markers : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val divide_by_zero : t
val do_not_report : t

an issue type that should never be reported

val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:CostKind.t -> t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase/ResultsDirEntryName/index.html b/website/static/odoc/next/infer/IBase/ResultsDirEntryName/index.html index 4c1db7888..644afbc4e 100644 --- a/website/static/odoc/next/infer/IBase/ResultsDirEntryName/index.html +++ b/website/static/odoc/next/infer/IBase/ResultsDirEntryName/index.html @@ -1,2 +1,2 @@ -ResultsDirEntryName (infer.IBase.ResultsDirEntryName)

Module IBase.ResultsDirEntryName

type id =
| BuckDependencies

list of Buck directories with infer-out/ directories

| CaptureDB

the capture database

| ChangedFunctions

results of the clang test determinator

| Debug

directory containing debug data

| Differential

contains the results of infer reportdiff

| DuplicateFunctions

list of duplicated functions

| JavaClassnamesCache

used when capturing Java jar dependencies

| JavaGlobalTypeEnvironment

internal Tenv.t object corresponding to the whole project

| LintDotty

directory of linters' dotty debug output for CTL evaluation

| LintIssues

directory of linters' issues

| Logs

log file

| NullsafeFileIssues

file-wide issues of the nullsafe analysis

| PerfEvents

file containing events for performance profiling

| ProcnamesLocks

directory of per-Procname.t file locks, used by the analysis scheduler in certain modes

| RacerDIssues

directory of issues reported by the RacerD analysis

| ReportCostsJson

reports of the costs analysis

| ReportHtml

directory of the HTML report

| ReportJson

the main product of the analysis: report.json

| ReportText

a human-readable textual version of report.json

| RetainCycles

directory of retain cycles dotty files

| RunState

internal data about the last infer run

| Specs

directory containing summaries as .specs files

| StarvationIssues

directory of issues reported by the starvation analysis

| Temporary

directory containing temp files

| TestDeterminatorReport

the report produced by the test determinator capture mode

| TestDeterminatorTempResults

a directory

val get_path : results_dir:string -> id -> string

the absolute path for the given entry

val get_issues_directories : unit -> id list

all the entries that correspond to directories containing temporary issue logs for certain analyses

val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list

utility for ResultsDir.scrub_for_incremental, you probably want to use that instead

val to_delete_before_caching_capture : results_dir:string -> string list

utility for ResultsDir.scrub_for_caching, you probably want to use that instead

val buck_infer_deps_file_name : string

sad that we have to have this here but some code path is looking for all files with that name in buck-out/

\ No newline at end of file +ResultsDirEntryName (infer.IBase.ResultsDirEntryName)

Module IBase.ResultsDirEntryName

type id =
| BuckDependencies

list of Buck directories with infer-out/ directories

| CaptureDB

the capture database

| ChangedFunctions

results of the clang test determinator

| Debug

directory containing debug data

| Differential

contains the results of infer reportdiff

| DuplicateFunctions

list of duplicated functions

| JavaClassnamesCache

used when capturing Java jar dependencies

| JavaGlobalTypeEnvironment

internal Tenv.t object corresponding to the whole project

| LintDotty

directory of linters' dotty debug output for CTL evaluation

| LintIssues

directory of linters' issues

| Logs

log file

| NullsafeFileIssues

file-wide issues of the nullsafe analysis

| PerfEvents

file containing events for performance profiling

| ProcnamesLocks

directory of per-Procname.t file locks, used by the analysis scheduler in certain modes

| RacerDIssues

directory of issues reported by the RacerD analysis

| ReportCostsJson

reports of the costs analysis

| ReportHtml

directory of the HTML report

| ReportJson

the main product of the analysis: report.json

| ReportText

a human-readable textual version of report.json

| ReportXML

a PMD-style XML version of report.json

| RetainCycles

directory of retain cycles dotty files

| RunState

internal data about the last infer run

| Specs

directory containing summaries as .specs files

| StarvationIssues

directory of issues reported by the starvation analysis

| Temporary

directory containing temp files

| TestDeterminatorReport

the report produced by the test determinator capture mode

| TestDeterminatorTempResults

a directory

val get_path : results_dir:string -> id -> string

the absolute path for the given entry

val get_issues_directories : unit -> id list

all the entries that correspond to directories containing temporary issue logs for certain analyses

val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list

utility for ResultsDir.scrub_for_incremental, you probably want to use that instead

val to_delete_before_caching_capture : results_dir:string -> string list

utility for ResultsDir.scrub_for_caching, you probably want to use that instead

val buck_infer_deps_file_name : string

sad that we have to have this here but some code path is looking for all files with that name in buck-out/

\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase__Checker/index.html b/website/static/odoc/next/infer/IBase__Checker/index.html index 237fcc939..72c8ba508 100644 --- a/website/static/odoc/next/infer/IBase__Checker/index.html +++ b/website/static/odoc/next/infer/IBase__Checker/index.html @@ -1,2 +1,2 @@ -IBase__Checker (infer.IBase__Checker)

Module IBase__Checker

type t =
| AnnotationReachability
| Biabduction
| BufferOverrunAnalysis
| BufferOverrunChecker
| ClassLoads
| Cost
| Eradicate
| FragmentRetainsView
| ImmutableCast
| Impurity
| InefficientKeysetIterator
| Linters
| LithoRequiredProps
| Liveness
| LoopHoisting
| NullsafeDeprecated
| PrintfArgs
| Pulse
| Purity
| Quandary
| RacerD
| ResourceLeakLabExercise
| SIOF
| SelfInBlock
| Starvation
| TOPL
| Uninit
val equal : t -> t -> bool
val all : t list
type support =
| NoSupport

checker does not run at all for this language

| ExperimentalSupport

checker runs but is not expected to give reasonable results

| Support

checker is expected to give reasonable results

per-language support for each checker

type cli_flags = {
deprecated : string list;

More command-line flags, similar to ~deprecated arguments in CommandLineOption.

show_in_help : bool;
}
type kind =
| UserFacing of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

}

can report issues to users

| UserFacingDeprecated of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

deprecation_message : string;
}

can report issues to users but should probably be deleted from infer

| Internal

Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental.

| Exercise

reserved for the "resource leak" lab exercise

type config = {
id : string;

Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line.

kind : kind;
support : IBase.Language.t -> support;
short_documentation : string;

used in man pages and as a short intro on the website

cli_flags : cli_flags option;

If None then the checker cannot be enabled/disabled from the command line.

enabled_by_default : bool;
activates : t list;

list of checkers that get enabled when this checker is enabled

}
val config : t -> config
val get_id : t -> string

get_id c is (config c).id

val from_id : string -> t option
\ No newline at end of file +IBase__Checker (infer.IBase__Checker)

Module IBase__Checker

type t =
| AnnotationReachability
| Biabduction
| BufferOverrunAnalysis
| BufferOverrunChecker
| ConfigChecksBetweenMarkers
| Cost
| Eradicate
| FragmentRetainsView
| ImmutableCast
| Impurity
| InefficientKeysetIterator
| Linters
| LithoRequiredProps
| Liveness
| LoopHoisting
| NullsafeDeprecated
| PrintfArgs
| Pulse
| Purity
| Quandary
| RacerD
| ResourceLeakLabExercise
| SIOF
| SelfInBlock
| Starvation
| TOPL
| Uninit
val equal : t -> t -> bool
val all : t list
type support =
| NoSupport

checker does not run at all for this language

| ExperimentalSupport

checker runs but is not expected to give reasonable results

| Support

checker is expected to give reasonable results

per-language support for each checker

type cli_flags = {
deprecated : string list;

More command-line flags, similar to ~deprecated arguments in CommandLineOption.

show_in_help : bool;
}
type kind =
| UserFacing of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

}

can report issues to users

| UserFacingDeprecated of {
title : string;

the title of the documentation web page

markdown_body : string;

main text of the documentation

deprecation_message : string;
}

can report issues to users but should probably be deleted from infer

| Internal

Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental.

| Exercise

reserved for the "resource leak" lab exercise

type config = {
id : string;

Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line.

kind : kind;
support : IBase.Language.t -> support;
short_documentation : string;

used in man pages and as a short intro on the website

cli_flags : cli_flags option;

If None then the checker cannot be enabled/disabled from the command line.

enabled_by_default : bool;
activates : t list;

list of checkers that get enabled when this checker is enabled

}
val config : t -> config
val get_id : t -> string

get_id c is (config c).id

val from_id : string -> t option
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase__Config/index.html b/website/static/odoc/next/infer/IBase__Config/index.html index 322909e4c..4dd4a3286 100644 --- a/website/static/odoc/next/infer/IBase__Config/index.html +++ b/website/static/odoc/next/infer/IBase__Config/index.html @@ -1,2 +1,2 @@ -IBase__Config (infer.IBase__Config)

Module IBase__Config

type os_type =
| Unix
| Win32
| Cygwin
type build_system =
| BAnt
| BBuck
| BClang
| BGradle
| BJava
| BJavac
| BMake
| BMvn
| BNdk
| BXcode
type scheduler =
| File
| Restart
| SyntacticCallGraph
val equal_scheduler : scheduler -> scheduler -> bool
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env

Constant configuration values

val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string

marker to recognize methods generated by javalib to eliminate lambdas

val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string

Configuration values specified by command-line options

type iphoneos_target_sdk_version_path_regex = {
path : Str.regexp;
version : string;
}
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : IBase.BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val class_loads_roots : IStdlib.IStd.String.Set.t
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : IBase.Checker.t list
val help_issue_type : IBase.IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : IBase.Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IBase.IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool

Configuration values derived from command-line options

val dynamic_dispatch : bool
val toplevel_results_dir : string

In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

val is_in_custom_symbols : string -> string -> bool

Does named symbol match any prefix in the named custom symbol list?

val java_package_is_external : string -> bool

Check if a Java package is external to the repository

val execution_id : IStdlib.IStd.Int64.t

Global variables with initial values specified by command-line options

val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref

Command Line Interface Documentation

val print_usage_exit : unit -> 'a
\ No newline at end of file +IBase__Config (infer.IBase__Config)

Module IBase__Config

type os_type =
| Unix
| Win32
| Cygwin
type build_system =
| BAnt
| BBuck
| BClang
| BGradle
| BJava
| BJavac
| BMake
| BMvn
| BNdk
| BXcode
type scheduler =
| File
| Restart
| SyntacticCallGraph
val equal_scheduler : scheduler -> scheduler -> bool
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env

Constant configuration values

val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string

marker to recognize methods generated by javalib to eliminate lambdas

val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string

Configuration values specified by command-line options

type iphoneos_target_sdk_version_path_regex = {
path : Str.regexp;
version : string;
}
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : IBase.BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : IBase.Checker.t list
val help_issue_type : IBase.IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : IBase.Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IBase.IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val pmd_xml : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_abort : string list
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool

Configuration values derived from command-line options

val dynamic_dispatch : bool
val toplevel_results_dir : string

In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir.

val is_in_custom_symbols : string -> string -> bool

Does named symbol match any prefix in the named custom symbol list?

val java_package_is_external : string -> bool

Check if a Java package is external to the repository

val execution_id : IStdlib.IStd.Int64.t

Global variables with initial values specified by command-line options

val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref

Command Line Interface Documentation

val print_usage_exit : unit -> 'a
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase__IssueType/index.html b/website/static/odoc/next/infer/IBase__IssueType/index.html index d9c1cf581..b886de48f 100644 --- a/website/static/odoc/next/infer/IBase__IssueType/index.html +++ b/website/static/odoc/next/infer/IBase__IssueType/index.html @@ -1,2 +1,2 @@ -IBase__IssueType (infer.IBase__IssueType)

Module IBase__IssueType

type visibility =
| User

always add to error log

| Developer

only add to error log in some debug modes

| Silent

never add to error log

visibility of the issue type

val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
type severity =
| Like
| Info
| Advice
| Warning
| Error

severity of the report

val compare_severity : severity -> severity -> int
val equal_severity : severity -> severity -> bool
val all_of_severity : severity list
val string_of_severity : severity -> string
type t = private {
unique_id : string;
checker : IBase.Checker.t;
visibility : visibility;
user_documentation : string option;
mutable default_severity : severity;

used for documentation but can be overriden at report time

mutable enabled : bool;
mutable hum : string;
mutable doc_url : string option;
mutable linters_def_file : string option;
}
val compare : t -> t -> int
val equal : t -> t -> bool
val all_issues : unit -> t list

all the issues declared so far

val pp : Stdlib.Format.formatter -> t -> unit

pretty print a localised string

val find_from_string : id:string -> t option

return the issue type if it was previously registered

val register_from_string : ?⁠enabled:bool -> ?⁠hum:string -> ?⁠doc_url:string -> ?⁠linters_def_file:string -> id:string -> ?⁠visibility:visibility -> ?⁠user_documentation:string -> severity -> IBase.Checker.t -> t

Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.

val checker_can_report : IBase.Checker.t -> t -> bool

Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val biabd_registered_observer_being_deallocated : t
val biabd_stack_variable_address_escape : t
val biabd_use_after_free : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t

Tainted values is used in array accesses, causing buffer over/underruns

val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t

Warning name when a performance critical method directly or indirectly calls a method allocating memory

val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t

Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

val checkers_expensive_overrides_unexpensive : t

Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val class_load : t
val complexity_increase : kind:IBase.CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val deallocation_mismatch : t
val divide_by_zero : t
val do_not_report : t

an issue type that should never be reported

val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:IBase.CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:IBase.CostKind.t -> t
\ No newline at end of file +IBase__IssueType (infer.IBase__IssueType)

Module IBase__IssueType

type visibility =
| User

always add to error log

| Developer

only add to error log in some debug modes

| Silent

never add to error log

visibility of the issue type

val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
type severity =
| Like
| Info
| Advice
| Warning
| Error

severity of the report

val compare_severity : severity -> severity -> int
val equal_severity : severity -> severity -> bool
val all_of_severity : severity list
val string_of_severity : severity -> string
type t = private {
unique_id : string;
checker : IBase.Checker.t;
visibility : visibility;
user_documentation : string option;
mutable default_severity : severity;

used for documentation but can be overriden at report time

mutable enabled : bool;
mutable hum : string;
mutable doc_url : string option;
mutable linters_def_file : string option;
}
val compare : t -> t -> int
val equal : t -> t -> bool
val all_issues : unit -> t list

all the issues declared so far

val pp : Stdlib.Format.formatter -> t -> unit

pretty print a localised string

val find_from_string : id:string -> t option

return the issue type if it was previously registered

val register_from_string : ?⁠enabled:bool -> ?⁠is_cost_issue:bool -> ?⁠hum:string -> ?⁠doc_url:string -> ?⁠linters_def_file:string -> id:string -> ?⁠visibility:visibility -> ?⁠user_documentation:string -> severity -> IBase.Checker.t -> t

Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.

val checker_can_report : IBase.Checker.t -> t -> bool

Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.

val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t

Tainted values is used in array accesses, causing buffer over/underruns

val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t

Warning name when a performance critical method directly or indirectly calls a method allocating memory

val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t

Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive

val checkers_expensive_overrides_unexpensive : t

Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive

val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val complexity_increase : kind:IBase.CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val config_checks_between_markers : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val divide_by_zero : t
val do_not_report : t

an issue type that should never be reported

val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:IBase.CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:IBase.CostKind.t -> t
\ No newline at end of file diff --git a/website/static/odoc/next/infer/IBase__ResultsDirEntryName/index.html b/website/static/odoc/next/infer/IBase__ResultsDirEntryName/index.html index b574f15f0..56aaab647 100644 --- a/website/static/odoc/next/infer/IBase__ResultsDirEntryName/index.html +++ b/website/static/odoc/next/infer/IBase__ResultsDirEntryName/index.html @@ -1,2 +1,2 @@ -IBase__ResultsDirEntryName (infer.IBase__ResultsDirEntryName)

Module IBase__ResultsDirEntryName

type id =
| BuckDependencies

list of Buck directories with infer-out/ directories

| CaptureDB

the capture database

| ChangedFunctions

results of the clang test determinator

| Debug

directory containing debug data

| Differential

contains the results of infer reportdiff

| DuplicateFunctions

list of duplicated functions

| JavaClassnamesCache

used when capturing Java jar dependencies

| JavaGlobalTypeEnvironment

internal Tenv.t object corresponding to the whole project

| LintDotty

directory of linters' dotty debug output for CTL evaluation

| LintIssues

directory of linters' issues

| Logs

log file

| NullsafeFileIssues

file-wide issues of the nullsafe analysis

| PerfEvents

file containing events for performance profiling

| ProcnamesLocks

directory of per-Procname.t file locks, used by the analysis scheduler in certain modes

| RacerDIssues

directory of issues reported by the RacerD analysis

| ReportCostsJson

reports of the costs analysis

| ReportHtml

directory of the HTML report

| ReportJson

the main product of the analysis: report.json

| ReportText

a human-readable textual version of report.json

| RetainCycles

directory of retain cycles dotty files

| RunState

internal data about the last infer run

| Specs

directory containing summaries as .specs files

| StarvationIssues

directory of issues reported by the starvation analysis

| Temporary

directory containing temp files

| TestDeterminatorReport

the report produced by the test determinator capture mode

| TestDeterminatorTempResults

a directory

val get_path : results_dir:string -> id -> string

the absolute path for the given entry

val get_issues_directories : unit -> id list

all the entries that correspond to directories containing temporary issue logs for certain analyses

val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list

utility for ResultsDir.scrub_for_incremental, you probably want to use that instead

val to_delete_before_caching_capture : results_dir:string -> string list

utility for ResultsDir.scrub_for_caching, you probably want to use that instead

val buck_infer_deps_file_name : string

sad that we have to have this here but some code path is looking for all files with that name in buck-out/

\ No newline at end of file +IBase__ResultsDirEntryName (infer.IBase__ResultsDirEntryName)

Module IBase__ResultsDirEntryName

type id =
| BuckDependencies

list of Buck directories with infer-out/ directories

| CaptureDB

the capture database

| ChangedFunctions

results of the clang test determinator

| Debug

directory containing debug data

| Differential

contains the results of infer reportdiff

| DuplicateFunctions

list of duplicated functions

| JavaClassnamesCache

used when capturing Java jar dependencies

| JavaGlobalTypeEnvironment

internal Tenv.t object corresponding to the whole project

| LintDotty

directory of linters' dotty debug output for CTL evaluation

| LintIssues

directory of linters' issues

| Logs

log file

| NullsafeFileIssues

file-wide issues of the nullsafe analysis

| PerfEvents

file containing events for performance profiling

| ProcnamesLocks

directory of per-Procname.t file locks, used by the analysis scheduler in certain modes

| RacerDIssues

directory of issues reported by the RacerD analysis

| ReportCostsJson

reports of the costs analysis

| ReportHtml

directory of the HTML report

| ReportJson

the main product of the analysis: report.json

| ReportText

a human-readable textual version of report.json

| ReportXML

a PMD-style XML version of report.json

| RetainCycles

directory of retain cycles dotty files

| RunState

internal data about the last infer run

| Specs

directory containing summaries as .specs files

| StarvationIssues

directory of issues reported by the starvation analysis

| Temporary

directory containing temp files

| TestDeterminatorReport

the report produced by the test determinator capture mode

| TestDeterminatorTempResults

a directory

val get_path : results_dir:string -> id -> string

the absolute path for the given entry

val get_issues_directories : unit -> id list

all the entries that correspond to directories containing temporary issue logs for certain analyses

val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list

utility for ResultsDir.scrub_for_incremental, you probably want to use that instead

val to_delete_before_caching_capture : results_dir:string -> string list

utility for ResultsDir.scrub_for_caching, you probably want to use that instead

val buck_infer_deps_file_name : string

sad that we have to have this here but some code path is looking for all files with that name in buck-out/

\ No newline at end of file diff --git a/website/static/odoc/next/infer/IR/Procname/index.html b/website/static/odoc/next/infer/IR/Procname/index.html index 4503bf8a5..d158fd457 100644 --- a/website/static/odoc/next/infer/IR/Procname/index.html +++ b/website/static/odoc/next/infer/IR/Procname/index.html @@ -1,2 +1,2 @@ -Procname (infer.IR.Procname)

Module IR.Procname

module F = Stdlib.Format
module Java : sig ... end

Type of java procedure names.

module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t =
| Java of Java.t
| C of C.t
| Linters_dummy_method
| Block of Block.t
| ObjC_Cpp of ObjC_Cpp.t
| WithBlockParameters of t * Block.block_name list

Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();} bar() {foo(my_block)} is executed as foo_my_block() {my_block(); } where foo_my_block is created with WithBlockParameters (foo, my_block)

val compare : t -> t -> int
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t

Hash tables with proc names as keys.

module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t

Maps from proc names.

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t

Sets of proc names.

module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end

One-sized cache for one procedure at a time. Returns getter and setter.

val make_java : class_name:Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t

Create a Java procedure name.

val make_objc_dealloc : Typ.Name.t -> t

Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"

val empty_block : t

Empty block name.

val get_language : t -> IBase.Language.t

Return the language of the procedure.

val get_method : t -> string

Return the method/function of a procname.

val is_objc_block : t -> bool

Return whether the procname is a block procname.

val is_c_method : t -> bool

Return true this is an Objective-C/C++ method name.

val is_clang : t -> bool

Return true if this is a C, C++, or Objective-C procedure name

val is_constructor : t -> bool

Check if this is a constructor.

val is_java : t -> bool

Check if this is a Java procedure name.

val with_block_parameters : t -> Block.block_name list -> t

Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).

val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool

Check if this is a special Infer undefined procedure.

val get_global_name_of_initializer : t -> string option

Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print a proc name for the user to see.

val to_string : t -> string

Convert a proc name into a string for the user to see.

val describe : Stdlib.Format.formatter -> t -> unit

to use in user messages

val replace_class : t -> Typ.Name.t -> t

Replace the class name component of a procedure name. In case of Java, replace package and class name.

val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?⁠withclass:bool -> F.formatter -> t -> unit

Pretty print a proc name as an easy string for the user to see in an IDE.

val to_simplified_string : ?⁠withclass:bool -> t -> string

Convert a proc name into an easy string for the user to see in an IDE.

val from_string_c_fun : string -> t

Convert a string to a c function name.

val hashable_name : t -> string

Convert the procedure name in a format suitable for computing the bug hash.

val pp_unique_id : F.formatter -> t -> unit

Print a proc name as a unique identifier.

val to_unique_id : t -> string

Convert a proc name into a unique identifier.

val to_filename : t -> string

Convert a proc name to a filename.

val get_qualifiers : t -> QualifiedCppName.t

get qualifiers of C/objc/C++ method/function

\ No newline at end of file +Procname (infer.IR.Procname)

Module IR.Procname

module F = Stdlib.Format
module Java : sig ... end

Type of java procedure names.

module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t =
| Java of Java.t
| C of C.t
| Linters_dummy_method
| Block of Block.t
| ObjC_Cpp of ObjC_Cpp.t
| WithBlockParameters of t * Block.block_name list

Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();} bar() {foo(my_block)} is executed as foo_my_block() {my_block(); } where foo_my_block is created with WithBlockParameters (foo, my_block)

val compare : t -> t -> int
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t

Hash tables with proc names as keys.

module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t

Maps from proc names.

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t

Sets of proc names.

module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end

One-sized cache for one procedure at a time. Returns getter and setter.

val make_java : class_name:Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t

Create a Java procedure name.

val make_objc_dealloc : Typ.Name.t -> t

Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"

val empty_block : t

Empty block name.

val get_language : t -> IBase.Language.t

Return the language of the procedure.

val get_method : t -> string

Return the method/function of a procname.

val is_objc_block : t -> bool

Return whether the procname is a block procname.

val is_objc_dealloc : t -> bool

Return whether the dealloc method of an Objective-C class.

val is_c_method : t -> bool

Return true this is an Objective-C/C++ method name.

val is_clang : t -> bool

Return true if this is a C, C++, or Objective-C procedure name

val is_constructor : t -> bool

Check if this is a constructor.

val is_java : t -> bool

Check if this is a Java procedure name.

val with_block_parameters : t -> Block.block_name list -> t

Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).

val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool

Check if this is a special Infer undefined procedure.

val get_global_name_of_initializer : t -> string option

Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print a proc name for the user to see.

val to_string : t -> string

Convert a proc name into a string for the user to see.

val describe : Stdlib.Format.formatter -> t -> unit

to use in user messages

val replace_class : t -> Typ.Name.t -> t

Replace the class name component of a procedure name. In case of Java, replace package and class name.

val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?⁠withclass:bool -> F.formatter -> t -> unit

Pretty print a proc name as an easy string for the user to see in an IDE.

val to_simplified_string : ?⁠withclass:bool -> t -> string

Convert a proc name into an easy string for the user to see in an IDE.

val from_string_c_fun : string -> t

Convert a string to a c function name.

val hashable_name : t -> string

Convert the procedure name in a format suitable for computing the bug hash.

val pp_unique_id : F.formatter -> t -> unit

Print a proc name as a unique identifier.

val to_unique_id : t -> string

Convert a proc name into a unique identifier.

val to_filename : t -> string

Convert a proc name to a filename.

val get_qualifiers : t -> QualifiedCppName.t

get qualifiers of C/objc/C++ method/function

\ No newline at end of file diff --git a/website/static/odoc/next/infer/IR__Procname/index.html b/website/static/odoc/next/infer/IR__Procname/index.html index 9f6b39acc..8848120ca 100644 --- a/website/static/odoc/next/infer/IR__Procname/index.html +++ b/website/static/odoc/next/infer/IR__Procname/index.html @@ -1,2 +1,2 @@ -IR__Procname (infer.IR__Procname)

Module IR__Procname

module F = Stdlib.Format
module Java : sig ... end

Type of java procedure names.

module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t =
| Java of Java.t
| C of C.t
| Linters_dummy_method
| Block of Block.t
| ObjC_Cpp of ObjC_Cpp.t
| WithBlockParameters of t * Block.block_name list

Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();} bar() {foo(my_block)} is executed as foo_my_block() {my_block(); } where foo_my_block is created with WithBlockParameters (foo, my_block)

val compare : t -> t -> int
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> IR.Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> IR.Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t

Hash tables with proc names as keys.

module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t

Maps from proc names.

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t

Sets of proc names.

module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end

One-sized cache for one procedure at a time. Returns getter and setter.

val make_java : class_name:IR.Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t

Create a Java procedure name.

val make_objc_dealloc : IR.Typ.Name.t -> t

Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"

val empty_block : t

Empty block name.

val get_language : t -> IBase.Language.t

Return the language of the procedure.

val get_method : t -> string

Return the method/function of a procname.

val is_objc_block : t -> bool

Return whether the procname is a block procname.

val is_c_method : t -> bool

Return true this is an Objective-C/C++ method name.

val is_clang : t -> bool

Return true if this is a C, C++, or Objective-C procedure name

val is_constructor : t -> bool

Check if this is a constructor.

val is_java : t -> bool

Check if this is a Java procedure name.

val with_block_parameters : t -> Block.block_name list -> t

Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).

val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool

Check if this is a special Infer undefined procedure.

val get_global_name_of_initializer : t -> string option

Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print a proc name for the user to see.

val to_string : t -> string

Convert a proc name into a string for the user to see.

val describe : Stdlib.Format.formatter -> t -> unit

to use in user messages

val replace_class : t -> IR.Typ.Name.t -> t

Replace the class name component of a procedure name. In case of Java, replace package and class name.

val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?⁠withclass:bool -> F.formatter -> t -> unit

Pretty print a proc name as an easy string for the user to see in an IDE.

val to_simplified_string : ?⁠withclass:bool -> t -> string

Convert a proc name into an easy string for the user to see in an IDE.

val from_string_c_fun : string -> t

Convert a string to a c function name.

val hashable_name : t -> string

Convert the procedure name in a format suitable for computing the bug hash.

val pp_unique_id : F.formatter -> t -> unit

Print a proc name as a unique identifier.

val to_unique_id : t -> string

Convert a proc name into a unique identifier.

val to_filename : t -> string

Convert a proc name to a filename.

val get_qualifiers : t -> IR.QualifiedCppName.t

get qualifiers of C/objc/C++ method/function

\ No newline at end of file +IR__Procname (infer.IR__Procname)

Module IR__Procname

module F = Stdlib.Format
module Java : sig ... end

Type of java procedure names.

module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t =
| Java of Java.t
| C of C.t
| Linters_dummy_method
| Block of Block.t
| ObjC_Cpp of ObjC_Cpp.t
| WithBlockParameters of t * Block.block_name list

Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();} bar() {foo(my_block)} is executed as foo_my_block() {my_block(); } where foo_my_block is created with WithBlockParameters (foo, my_block)

val compare : t -> t -> int
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> IR.Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> IR.Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t

Hash tables with proc names as keys.

module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t

Maps from proc names.

module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t

Sets of proc names.

module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end

One-sized cache for one procedure at a time. Returns getter and setter.

val make_java : class_name:IR.Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t

Create a Java procedure name.

val make_objc_dealloc : IR.Typ.Name.t -> t

Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"

val empty_block : t

Empty block name.

val get_language : t -> IBase.Language.t

Return the language of the procedure.

val get_method : t -> string

Return the method/function of a procname.

val is_objc_block : t -> bool

Return whether the procname is a block procname.

val is_objc_dealloc : t -> bool

Return whether the dealloc method of an Objective-C class.

val is_c_method : t -> bool

Return true this is an Objective-C/C++ method name.

val is_clang : t -> bool

Return true if this is a C, C++, or Objective-C procedure name

val is_constructor : t -> bool

Check if this is a constructor.

val is_java : t -> bool

Check if this is a Java procedure name.

val with_block_parameters : t -> Block.block_name list -> t

Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).

val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool

Check if this is a special Infer undefined procedure.

val get_global_name_of_initializer : t -> string option

Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print a proc name for the user to see.

val to_string : t -> string

Convert a proc name into a string for the user to see.

val describe : Stdlib.Format.formatter -> t -> unit

to use in user messages

val replace_class : t -> IR.Typ.Name.t -> t

Replace the class name component of a procedure name. In case of Java, replace package and class name.

val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?⁠withclass:bool -> F.formatter -> t -> unit

Pretty print a proc name as an easy string for the user to see in an IDE.

val to_simplified_string : ?⁠withclass:bool -> t -> string

Convert a proc name into an easy string for the user to see in an IDE.

val from_string_c_fun : string -> t

Convert a string to a c function name.

val hashable_name : t -> string

Convert the procedure name in a format suitable for computing the bug hash.

val pp_unique_id : F.formatter -> t -> unit

Print a proc name as a unique identifier.

val to_unique_id : t -> string

Convert a proc name into a unique identifier.

val to_filename : t -> string

Convert a proc name to a filename.

val get_qualifiers : t -> IR.QualifiedCppName.t

get qualifiers of C/objc/C++ method/function

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Integration/Help/index.html b/website/static/odoc/next/infer/Integration/Help/index.html index 9e204767c..c26b638ed 100644 --- a/website/static/odoc/next/infer/Integration/Help/index.html +++ b/website/static/odoc/next/infer/Integration/Help/index.html @@ -1,2 +1,2 @@ -Help (infer.Integration.Help)

Module Integration.Help

val list_checkers : unit -> unit

print the list of all checkers

val list_issue_types : unit -> unit

print the list of all known issue types

val show_checkers : IBase.Checker.t list -> unit

show information about the given checkers

val show_issue_types : IBase.IssueType.t list -> unit

show information about the given issue_types

val write_website : website_root:string -> unit

generate files for the fbinfer.com website

\ No newline at end of file +Help (infer.Integration.Help)

Module Integration.Help

val list_checkers : unit -> unit

print the list of all checkers

val list_issue_types : unit -> unit

print the list of all known issue types

val show_checkers : IBase.Checker.t list -> unit

show information about the given checkers

val show_issue_types : IBase.IssueType.t list -> unit

show information about the given issue_types

val write_website : website_root:string -> unit

generate files for the fbinfer.com website

val url_fragment_of_issue_type : string -> string

given an issue type unique ID, return the URL fragment relative to the website documentation, e.g. url_fragment_of_issue_type "NULL_DEREFERENCE" is "all-issue-types#null_dereference"

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Integration/XMLReport/index.html b/website/static/odoc/next/infer/Integration/XMLReport/index.html new file mode 100644 index 000000000..81ca15472 --- /dev/null +++ b/website/static/odoc/next/infer/Integration/XMLReport/index.html @@ -0,0 +1,2 @@ + +XMLReport (infer.Integration.XMLReport)

Module Integration.XMLReport

val write : xml_path:string -> json_path:string -> unit

read the JSON report at json_path and translates it to a PMD-style XML report in xml_path

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Integration/index.html b/website/static/odoc/next/infer/Integration/index.html index 35493079c..dedec7393 100644 --- a/website/static/odoc/next/infer/Integration/index.html +++ b/website/static/odoc/next/infer/Integration/index.html @@ -1,2 +1,2 @@ -Integration (infer.Integration)

Module Integration

module Ant : sig ... end
module Buck : sig ... end
module BuckFlavors : sig ... end
module BuckGenrule : sig ... end
module CaptureCompilationDatabase : sig ... end
module Clang : sig ... end
module CompilationDatabase : sig ... end
module CostIssuesTest : sig ... end
module Differential : sig ... end
module DifferentialFilters : sig ... end
module Driver : sig ... end
module Gradle : sig ... end
module Help : sig ... end
module IssuesTest : sig ... end
module Javac : sig ... end
module JsonReports : sig ... end
module Maven : sig ... end
module NdkBuild : sig ... end
module ReportDiff : sig ... end
module TextReport : sig ... end
module TraceBugs : sig ... end
module XcodeBuild : sig ... end
\ No newline at end of file +Integration (infer.Integration)

Module Integration

module Ant : sig ... end
module Buck : sig ... end
module BuckFlavors : sig ... end
module BuckGenrule : sig ... end
module CaptureCompilationDatabase : sig ... end
module Clang : sig ... end
module CompilationDatabase : sig ... end
module CostIssuesTest : sig ... end
module Differential : sig ... end
module DifferentialFilters : sig ... end
module Driver : sig ... end
module Gradle : sig ... end
module Help : sig ... end
module IssuesTest : sig ... end
module Javac : sig ... end
module JsonReports : sig ... end
module Maven : sig ... end
module NdkBuild : sig ... end
module ReportDiff : sig ... end
module TextReport : sig ... end
module TraceBugs : sig ... end
module XMLReport : sig ... end
module XcodeBuild : sig ... end
\ No newline at end of file diff --git a/website/static/odoc/next/infer/Integration__Help/index.html b/website/static/odoc/next/infer/Integration__Help/index.html index 597628d41..868561127 100644 --- a/website/static/odoc/next/infer/Integration__Help/index.html +++ b/website/static/odoc/next/infer/Integration__Help/index.html @@ -1,2 +1,2 @@ -Integration__Help (infer.Integration__Help)

Module Integration__Help

val list_checkers : unit -> unit

print the list of all checkers

val list_issue_types : unit -> unit

print the list of all known issue types

val show_checkers : IBase.Checker.t list -> unit

show information about the given checkers

val show_issue_types : IBase.IssueType.t list -> unit

show information about the given issue_types

val write_website : website_root:string -> unit

generate files for the fbinfer.com website

\ No newline at end of file +Integration__Help (infer.Integration__Help)

Module Integration__Help

val list_checkers : unit -> unit

print the list of all checkers

val list_issue_types : unit -> unit

print the list of all known issue types

val show_checkers : IBase.Checker.t list -> unit

show information about the given checkers

val show_issue_types : IBase.IssueType.t list -> unit

show information about the given issue_types

val write_website : website_root:string -> unit

generate files for the fbinfer.com website

val url_fragment_of_issue_type : string -> string

given an issue type unique ID, return the URL fragment relative to the website documentation, e.g. url_fragment_of_issue_type "NULL_DEREFERENCE" is "all-issue-types#null_dereference"

\ No newline at end of file diff --git a/website/static/odoc/next/infer/Integration__XMLReport/.dune-keep b/website/static/odoc/next/infer/Integration__XMLReport/.dune-keep new file mode 100644 index 000000000..e69de29bb diff --git a/website/static/odoc/next/infer/Integration__XMLReport/index.html b/website/static/odoc/next/infer/Integration__XMLReport/index.html new file mode 100644 index 000000000..fe49d5ab1 --- /dev/null +++ b/website/static/odoc/next/infer/Integration__XMLReport/index.html @@ -0,0 +1,2 @@ + +Integration__XMLReport (infer.Integration__XMLReport)

Module Integration__XMLReport

val write : xml_path:string -> json_path:string -> unit

read the JSON report at json_path and translates it to a PMD-style XML report in xml_path

\ No newline at end of file