Runs the type-checking, region checking and other miscellaneous analysis
passes on the crate.
Check for the #[rustc_error]
annotation, which forces an error in codegen. This is used
to write UI tests that actually test that compilation succeeds without reporting
an error.
Runs the βearly phasesβ of the compiler: initial cfg
processing,
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 all analyses that we guarantee to run, even if errors were reported in earlier analyses.
This function never fails.
Runs the codegen backend, after which the AST and analysis can
be discarded.