diff options
Diffstat (limited to 'compiler/rustc_traits/src/lib.rs')
-rw-r--r-- | compiler/rustc_traits/src/lib.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/compiler/rustc_traits/src/lib.rs b/compiler/rustc_traits/src/lib.rs new file mode 100644 index 000000000..2bea164c0 --- /dev/null +++ b/compiler/rustc_traits/src/lib.rs @@ -0,0 +1,32 @@ +//! New recursive solver modeled on Chalk's recursive solver. Most of +//! the guts are broken up into modules; see the comments in those modules. + +#![feature(let_else)] +#![recursion_limit = "256"] + +#[macro_use] +extern crate tracing; +#[macro_use] +extern crate rustc_middle; + +mod chalk; +mod dropck_outlives; +mod evaluate_obligation; +mod implied_outlives_bounds; +mod normalize_erasing_regions; +mod normalize_projection_ty; +mod type_op; + +pub use type_op::{type_op_ascribe_user_type_with_span, type_op_prove_predicate_with_cause}; + +use rustc_middle::ty::query::Providers; + +pub fn provide(p: &mut Providers) { + dropck_outlives::provide(p); + evaluate_obligation::provide(p); + implied_outlives_bounds::provide(p); + chalk::provide(p); + normalize_projection_ty::provide(p); + normalize_erasing_regions::provide(p); + type_op::provide(p); +} |