//! Queries that are independent from the main solver code. #![deny(rustc::untranslatable_diagnostic)] #![deny(rustc::diagnostic_outside_of_impl)] #![feature(let_chains)] #![recursion_limit = "256"] #[macro_use] extern crate tracing; #[macro_use] extern crate rustc_middle; mod codegen; mod dropck_outlives; mod evaluate_obligation; mod implied_outlives_bounds; mod normalize_erasing_regions; mod normalize_projection_ty; mod type_op; pub use rustc_trait_selection::traits::query::type_op::ascribe_user_type::type_op_ascribe_user_type_with_span; pub use type_op::type_op_prove_predicate_with_cause; use rustc_middle::query::Providers; pub fn provide(p: &mut Providers) { dropck_outlives::provide(p); evaluate_obligation::provide(p); implied_outlives_bounds::provide(p); normalize_projection_ty::provide(p); normalize_erasing_regions::provide(p); type_op::provide(p); p.codegen_select_candidate = codegen::codegen_select_candidate; }