Runs the resolution, type-checking, region checking and other miscellaneous analysis passes on the crate.
Runs the “early phases” of the compiler: initial
cfg processing, loading compiler plugins,
syntax expansion, secondary
cfg expansion, synthesis of a test
harness if one is to be provided, injection of a dependency on the
standard library and prelude, and name resolution.
Runs the codegen backend, after which the AST and analysis can be discarded.