| //! This crate defines the trait resolution method. |
| //! |
| //! - **Traits.** Trait resolution is implemented in the `traits` module. |
| //! |
| //! 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/")] |
| #![doc(rust_logo)] |
| #![feature(rustdoc_internals)] |
| #![allow(internal_features)] |
| #![allow(rustc::diagnostic_outside_of_impl)] |
| #![allow(rustc::untranslatable_diagnostic)] |
| #![feature(assert_matches)] |
| #![feature(associated_type_bounds)] |
| #![feature(associated_type_defaults)] |
| #![feature(box_patterns)] |
| #![feature(control_flow_enum)] |
| #![feature(extract_if)] |
| #![feature(let_chains)] |
| #![feature(option_take_if)] |
| #![feature(never_type)] |
| #![feature(type_alias_impl_trait)] |
| #![cfg_attr(bootstrap, feature(min_specialization))] |
| #![recursion_limit = "512"] // For rustdoc |
| |
| #[macro_use] |
| extern crate rustc_macros; |
| #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] |
| #[macro_use] |
| extern crate rustc_data_structures; |
| #[macro_use] |
| extern crate tracing; |
| #[macro_use] |
| extern crate rustc_middle; |
| #[macro_use] |
| extern crate smallvec; |
| |
| pub mod errors; |
| pub mod infer; |
| pub mod regions; |
| pub mod solve; |
| pub mod traits; |
| |
| rustc_fluent_macro::fluent_messages! { "../messages.ftl" } |