Expand description
Ties together the crate and defines command line options.
While this is technically a βlibraryβ, it only is so for the purposes of
being able to reference the same code in the two executables paralegal_flow
and
cargo-paralegal-flow
(a structure suggested by rustc_plugin).
Re-exportsΒ§
pub extern crate either;
pub use crate::ann::db::MarkerCtx;
pub use paralegal_spdg as desc;
ModulesΒ§
- Data-and control flow analyzer and inliner.
- args πCommand line arguments and parsing.
- Helpers for debugging
- discover πMIR visitor (
CollectingVisitor
) that populates the [MarkerDatabase
] and discovers functions marked for analysis. - stats π
- Utility functions, general purpose structs and extension traits
MacrosΒ§
- Conveniently create a vector of
Symbol
s. This way you can just writesym_vec!["s1", "s2", ...]
and this macro will make sure to callSymbol::intern
StructsΒ§
- ArgWrapper πTop level argument structure. This is only used for parsing. The actual configuration of paralegal-flow
Args
which is stored inargs
.cargo_args
is forwarded and_progname
is only to comply with the calling convention ofcargo
(it passes the program name as first argument). - Additional configuration for the build process/rustc
- Callbacks π
- Crate
Info π - Dependency specific configuration
- A struct so we can implement
rustc_plugin::RustcPlugin
- Collection of the
DumpOption
s a user has set. - Dump
Only πCallbacks - Dump
Stats π - A hash map implemented with quadratic probing and SIMD lookup.
- Noop
Callbacks π - An interned string.
EnumsΒ§
- Crate
Handling π - The enum
Either
with variantsLeft
andRight
is a general purpose sum type with two cases.
ConstantsΒ§
FunctionsΒ§
- add_
to_ πrustflags - Also adds and additional features required by the Paralegal build config