]>
Commit | Line | Data |
---|---|---|
0531ce1d XL |
1 | //! New recursive solver modeled on Chalk's recursive solver. Most of |
2 | //! the guts are broken up into modules; see the comments in those modules. | |
3 | ||
f2b60f7d FG |
4 | #![deny(rustc::untranslatable_diagnostic)] |
5 | #![deny(rustc::diagnostic_outside_of_impl)] | |
487cf647 | 6 | #![feature(let_chains)] |
9ffffee4 | 7 | #![feature(drain_filter)] |
dfeec247 | 8 | #![recursion_limit = "256"] |
94b46f34 | 9 | |
0531ce1d | 10 | #[macro_use] |
3dfed10e | 11 | extern crate tracing; |
0531ce1d | 12 | #[macro_use] |
ba9703b0 | 13 | extern crate rustc_middle; |
0531ce1d | 14 | |
f9f354fc | 15 | mod chalk; |
487cf647 | 16 | mod codegen; |
0531ce1d | 17 | mod dropck_outlives; |
83c7162d | 18 | mod evaluate_obligation; |
8faf50e0 | 19 | mod implied_outlives_bounds; |
dfeec247 XL |
20 | mod normalize_erasing_regions; |
21 | mod normalize_projection_ty; | |
8faf50e0 | 22 | mod type_op; |
0531ce1d | 23 | |
c295e0f8 | 24 | pub use type_op::{type_op_ascribe_user_type_with_span, type_op_prove_predicate_with_cause}; |
94222f64 | 25 | |
ba9703b0 | 26 | use rustc_middle::ty::query::Providers; |
0531ce1d | 27 | |
f035d41b | 28 | pub fn provide(p: &mut Providers) { |
8faf50e0 XL |
29 | dropck_outlives::provide(p); |
30 | evaluate_obligation::provide(p); | |
31 | implied_outlives_bounds::provide(p); | |
f9f354fc | 32 | chalk::provide(p); |
8faf50e0 XL |
33 | normalize_projection_ty::provide(p); |
34 | normalize_erasing_regions::provide(p); | |
35 | type_op::provide(p); | |
487cf647 | 36 | p.codegen_select_candidate = codegen::codegen_select_candidate; |
0531ce1d | 37 | } |