Infer
Backend
Want to write your own analysis? You probably want the Absint library. Backend is in charge of orchestrating the various analyses on a collection of procedures.
Some of the simplest analyses can be found in the Checkers library.
Frontends
The frontends translate the source code to analyze into Infer's intermediate representation (see IR) to be analyzed by the backend.
There are two frontends:
See also AST Language, and TestDeterminators, which operate right after the frontends.
Utilities
IStdlib groups non-Infer-specific modules, and IBase contains more Infer-specific modules that other Infer libraries need, usually depending on the IBase.Config
module. Some datatypes and their accompanying utilities are defined in the ATDGenerated library.
Integrations and Infer executables
Integration ties the frontends and backend together, and deals with build system integrations.
You'll find the source code for the infer
command-line interface and others in the infer/src/ directory.