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 compilation_done: PhaseController<'a>, pub make_glob_map: MakeGlobMap, pub keep_ast: bool, pub continue_parse_after_error: bool, pub provide: Box<Fn(&mut Providers) + 'a>, pub provide_extern: Box<Fn(&mut Providers) + 'a>, }
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
CompileController is used to customize 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 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
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
after_expand: PhaseController<'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
after_hir_lowering: PhaseController<'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
after_analysis: PhaseController<'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
compilation_done: PhaseController<'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
make_glob_map: MakeGlobMap
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
keep_ast: bool
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
continue_parse_after_error: bool
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
provide: Box<Fn(&mut Providers) + 'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Allows overriding default rustc query providers,
after default_provide
has installed them.
provide_extern: Box<Fn(&mut Providers) + 'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Same as provide
, but only for non-local crates,
applied after default_provide_extern
.
Methods
impl<'a> CompileController<'a>
[src]
impl<'a> CompileController<'a>
pub fn basic() -> CompileController<'a>
[src]
pub fn basic() -> CompileController<'a>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Auto Trait Implementations
impl<'a> !Send for CompileController<'a>
impl<'a> !Send for CompileController<'a>
impl<'a> !Sync for CompileController<'a>
impl<'a> !Sync for CompileController<'a>