|  | //! This crates defines the type inference engine. | 
|  | //! | 
|  | //! - **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 the `librustc_typeck` crate. | 
|  | //! | 
|  | //! For more information about how rustc works, see the [rustc dev guide]. | 
|  | //! | 
|  | //! [rustc dev guide]: https://rustc-dev-guide.rust-lang.org/ | 
|  | //! | 
|  | //! # Note | 
|  | //! | 
|  | //! This API is completely unstable and subject to change. | 
|  |  | 
|  | #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] | 
|  | #![feature(bool_to_option)] | 
|  | #![feature(box_patterns)] | 
|  | #![feature(box_syntax)] | 
|  | #![feature(const_fn)] | 
|  | #![feature(const_panic)] | 
|  | #![feature(extend_one)] | 
|  | #![feature(never_type)] | 
|  | #![feature(or_patterns)] | 
|  | #![feature(in_band_lifetimes)] | 
|  | #![feature(control_flow_enum)] | 
|  | #![recursion_limit = "512"] // For rustdoc | 
|  |  | 
|  | #[macro_use] | 
|  | extern crate rustc_macros; | 
|  | #[cfg(target_arch = "x86_64")] | 
|  | #[macro_use] | 
|  | extern crate rustc_data_structures; | 
|  | #[macro_use] | 
|  | extern crate tracing; | 
|  | #[macro_use] | 
|  | extern crate rustc_middle; | 
|  |  | 
|  | pub mod infer; | 
|  | pub mod traits; |