]> git.proxmox.com Git - rustc.git/blame - compiler/rustc_traits/src/lib.rs
New upstream version 1.69.0+dfsg1
[rustc.git] / compiler / rustc_traits / src / lib.rs
CommitLineData
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 11extern crate tracing;
0531ce1d 12#[macro_use]
ba9703b0 13extern crate rustc_middle;
0531ce1d 14
f9f354fc 15mod chalk;
487cf647 16mod codegen;
0531ce1d 17mod dropck_outlives;
83c7162d 18mod evaluate_obligation;
8faf50e0 19mod implied_outlives_bounds;
dfeec247
XL
20mod normalize_erasing_regions;
21mod normalize_projection_ty;
8faf50e0 22mod type_op;
0531ce1d 23
c295e0f8 24pub use type_op::{type_op_ascribe_user_type_with_span, type_op_prove_predicate_with_cause};
94222f64 25
ba9703b0 26use rustc_middle::ty::query::Providers;
0531ce1d 27
f035d41b 28pub 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}