Module rustc_driver::driver[][src]

🔬 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?

Re-exports

use rustc::dep_graph::DepGraph;
use rustc::hir;
use rustc::hir::map as hir_map;
use rustc::hir::lowering::lower_crate;
use rustc::ich::Fingerprint;
use rustc_data_structures::stable_hasher::StableHasher;
use rustc_mir as mir;
use rustc::session::CompileResult;
use rustc::session::CrateDisambiguator;
use rustc::session::Session;
use rustc::session::CompileIncomplete;
use rustc::session::config;
use rustc::session::config::Input;
use rustc::session::config::OutputFilenames;
use rustc::session::config::OutputType;
use rustc::session::search_paths::PathKind;
use rustc::lint;
use rustc::middle;
use rustc::middle::reachable;
use rustc::middle::resolve_lifetime;
use rustc::middle::stability;
use rustc::middle::cstore::CrateStoreDyn;
use rustc::middle::privacy::AccessLevels;
use rustc::ty;
use rustc::ty::AllArenas;
use rustc::ty::Resolutions;
use rustc::ty::TyCtxt;
use rustc::traits;
use rustc::util::common::install_panic_hook;
use rustc::util::common::time;
use rustc::util::common::ErrorReported;
use rustc_allocator as allocator;
use rustc_borrowck as borrowck;
use rustc_incremental;
use rustc_resolve::MakeGlobMap;
use rustc_resolve::Resolver;
use rustc_resolve::ResolverArenas;
use rustc_metadata::creader::CrateLoader;
use rustc_metadata::cstore;
use rustc_metadata::cstore::CStore;
use rustc_traits;
use rustc_codegen_utils::codegen_backend::CodegenBackend;
use rustc_typeck as typeck;
use rustc_privacy;
use rustc_plugin::registry::Registry;
use rustc_plugin as plugin;
use rustc_passes;
use rustc_passes::ast_validation;
use rustc_passes::hir_stats;
use rustc_passes::loops;
use rustc_passes::rvalue_promotion;
use super::Compilation;
use serialize::json;
use std::any::Any;
use std::env;
use std::ffi::OsStr;
use std::ffi::OsString;
use std::fs;
use std::io;
use std::io::Write;
use std::iter;
use std::path::Path;
use std::path::PathBuf;
use rustc_data_structures::sync;
use rustc_data_structures::sync::Lrc;
use rustc_data_structures::sync::Lock;
use std::sync::mpsc;
use syntax;
use syntax::ast;
use syntax::attr;
use syntax::diagnostics;
use syntax::visit;
use syntax::ext::base::ExtCtxt;
use syntax::fold::Folder;
use syntax::parse;
use syntax::parse::PResult;
use syntax::util::node_count::NodeCounter;
use syntax_pos::FileName;
use syntax_ext;
use derive_registrar;
use pretty::ReplaceBodyWithLoop;
use profile;

Structs

CompileController [
Experimental
]

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.

CompileState [
Experimental
]

State that is passed to a callback. What state is available depends on when during compilation the callback is made. See the various constructor methods (state_*) in the impl to see which data is provided for any given entry point.

ExpansionResult [
Experimental
]
InnerExpansionResult [
Experimental
]
PhaseController [
Experimental
]

Functions

build_output_filenames [
Experimental
]
check_output [
Experimental
]
collect_crate_types [
Experimental
]
compile_input [
Experimental
]
compute_crate_disambiguator [
Experimental
]
count_nodes [
Experimental
]
default_provide [
Experimental
]
default_provide_extern [
Experimental
]
escape_dep_filename [
Experimental
]
generated_output_paths [
Experimental
]
output_conflicts_with_dir [
Experimental
]
output_contains_path [
Experimental
]
phase_1_parse_input [
Experimental
]
phase_2_configure_and_expand [
Experimental
]

Run the "early phases" of the compiler: initial cfg processing, loading compiler plugins (including those from addl_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.

phase_2_configure_and_expand_inner [
Experimental
]

Same as phase_2_configure_and_expand, but doesn't let you keep the resolver around

phase_3_run_analysis_passes [
Experimental
]

Run the resolution, typechecking, region checking and other miscellaneous analysis passes on the crate. Return various structures carrying the results of the analysis.

phase_4_codegen [
Experimental
]

Run the codegen backend, after which the AST and analysis can be discarded.

source_name [
Experimental
]
spawn_thread_pool [
Experimental
]
write_out_deps [
Experimental
]