entry points for top-level functionalities such as capture under various build systems, analysis, and reporting
type mode
=
| Analyze |
| BuckGenrule of string |
| BuckCompilationDB of string * string list |
| Clang of InferModules.Clang.compiler * string * string list |
| ClangCompilationDB of [ `Escaped of string | `Raw of string ] list |
| Javac of InferModules.Javac.compiler * string * string list |
| Maven of string * string list |
| Python of string list |
| PythonCapture of InferBase.Config.build_system * string list |
| XcodeXcpretty of string * string list |
based on the build_system and options passed to infer, we run in different driver modes
val mode_from_command_line : mode InferStdlib.IStd.Lazy.t
driver mode computed from the command-line arguments and settings in Config
val mode_of_build_command : string list ‑> mode
driver mode computed from the build command alone, eg ["buck"; "build"; ...]
gives PythonCapture (BBuck, ["buck"; "build"; ...])
val capture : changed_files:InferBase.SourceFile.Set.t option ‑> mode ‑> unit
run the capture for the given mode
val analyze_and_report : ?suppress_console_report:bool ‑> changed_files:InferBase.SourceFile.Set.t option ‑> mode ‑> unit
run the analysis for the given mode
val run_epilogue : mode ‑> unit
cleanup infer-out/ for Buck, generate stats, and generally post-process the results of a run
val read_config_changed_files : unit ‑> InferBase.SourceFile.Set.t option
return the list of changed files as read from Config.changed_files_index and passed to SourceFile.changed_sources_from_changed_files