Struct rustc_driver::driver::CompileControllerUnstable [-] [+] [src]

pub struct CompileController<'a> {
    pub after_parse: PhaseController<'a>,
    pub after_expand: PhaseController<'a>,
    pub after_write_deps: PhaseController<'a>,
    pub after_analysis: PhaseController<'a>,
    pub after_llvm: PhaseController<'a>,
    pub make_glob_map: MakeGlobMap,
}

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
after_expand
after_write_deps
after_analysis
after_llvm
make_glob_map

Methods

impl<'a> CompileController<'a>

fn basic() -> CompileController<'a>