Struct rustc_driver::driver::CompileController
[−]
[src]
pub struct CompileController<'a> {
pub after_parse: PhaseController<'a>,
pub after_expand: PhaseController<'a>,
pub after_hir_lowering: PhaseController<'a>,
pub after_analysis: PhaseController<'a>,
pub after_llvm: PhaseController<'a>,
pub compilation_done: PhaseController<'a>,
pub make_glob_map: MakeGlobMap,
}🔬 This is a nightly-only experimental API. (
rustc_private)CompileController is used to customise compilation, it allows compilation to be stopped and/or to call arbitrary code at various points in compilation. It also allows for various flags to be set to influence what information gets collected during compilation.
This is a somewhat higher level controller than a Session - the Session controls what happens in each phase, whereas the CompileController controls whether a phase is run at all and whether other code (from outside the the compiler) is run between phases.
Note that if compilation is set to stop and a callback is provided for a given entry point, the callback is called before compilation is stopped.
Expect more entry points to be added in the future.
Fields
after_parse: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)after_expand: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)after_hir_lowering: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)after_analysis: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)after_llvm: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)compilation_done: PhaseController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)make_glob_map: MakeGlobMap
🔬 This is a nightly-only experimental API. (
rustc_private)Methods
impl<'a> CompileController<'a>[src]
fn basic() -> CompileController<'a>
🔬 This is a nightly-only experimental API. (
rustc_private)