Module rustc_driver::driver [] [src]

🔬 This is a nightly-only experimental API. (rustc_private)

Structs

CompileController [
Experimental
]

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.

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
]
PhaseController [
Experimental
]

Functions

anon_src [
Experimental
]

The name used for source code that doesn't originate in a file (e.g. source from stdin or a string)

build_output_filenames [
Experimental
]
collect_crate_types [
Experimental
]
compile_input [
Experimental
]
compute_crate_disambiguator [
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_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_translate_to_llvm [
Experimental
]

Run the translation phase to LLVM, after which the AST and analysis can be discarded.

phase_5_run_llvm_passes [
Experimental
]

Run LLVM itself, producing a bitcode file, assembly file or object file as a side effect.

phase_6_link_output [
Experimental
]

Run the linker on any artifacts that resulted from the LLVM run. This should produce either a finished executable or library.

source_name [
Experimental
]