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
hirmodule. - MIR. The "mid-level (M) intermediate representation (IR)" is
defined in the
mirmodule. This module contains only the definition of the MIR; the passes that transform and operate on MIR are found inlibrustc_mircrate. - Types. The internal representation of types used in rustc is
defined in the
tymodule. 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
traitsmodule. - Type inference. The type inference code can be found in the
infermodule; this code handles low-level equality and subtyping operations. The type check pass in the compiler is found in thelibrustc_typeckcrate.
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 ]
|