Crate rustc [−] [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?
The "main crate" of the Rust compiler. This crate contains common type definitions that are used by the other crates in the rustc "family". Some prominent examples (note that each of these modules has their own README with further details).
- HIR. The "high-level (H) intermediate representation (IR)" is
defined in the
hir
module. - MIR. The "mid-level (M) intermediate representation (IR)" is
defined in the
mir
module. This module contains only the definition of the MIR; the passes that transform and operate on MIR are found inlibrustc_mir
crate. - Types. The internal representation of types used in rustc is
defined in the
ty
module. This includes the type context (ortcx
), which is the central context during most of compilation, containing the interners and other things. - Traits. Trait resolution is implemented in the
traits
module. - Type inference. The type inference code can be found in the
infer
module; this code handles low-level equality and subtyping operations. The type check pass in the compiler is found in thelibrustc_typeck
crate.
For a deeper explanation of how the compiler works and is organized, see the README.md file in this directory.
Note
This API is completely unstable and subject to change.
Modules
cfg |
[ Experimental ] Module that constructs a control-flow graph representing an item.
Uses |
dep_graph |
[ Experimental ]
|
diagnostics |
[ Experimental ]
|
hir |
[ Experimental ]
|
ich |
[ Experimental ] ICH - Incremental Compilation Hash |
infer |
[ Experimental ] See the Book for more information. |
lint |
[ Experimental ] Lints, aka compiler warnings. |
middle |
[ Experimental ]
|
mir |
[ Experimental ] MIR datatypes and passes. See the module-level README for details. |
session |
[ Experimental ]
|
traits |
[ Experimental ] Trait Resolution. See README.md for an overview of how this works. |
ty |
[ Experimental ]
|
util |
[ Experimental ]
|
Macros
BraceStructLiftImpl |
[ Experimental ]
|
BraceStructTypeFoldableImpl |
[ Experimental ]
|
EnumLiftImpl |
[ Experimental ]
|
EnumTypeFoldableImpl |
[ Experimental ]
|
__impl_decoder_methods |
[ Experimental ]
|
__impl_stable_hash_field |
[ Experimental ]
|
bug |
[ Experimental ]
|
declare_lint |
[ Experimental ] Declare a static item of type |
err |
[ Experimental ]
|
impl_stable_hash_for |
[ Experimental ]
|
impl_stable_hash_for_spanned |
[ Experimental ]
|
implement_ty_decoder |
[ Experimental ]
|
lint_array |
[ Experimental ] Declare a static |
span_bug |
[ Experimental ]
|
Constants
DIAGNOSTICS |
[ Experimental ]
|