1 //! Construction of MIR from HIR.
3 //! This crate also contains the match exhaustiveness and usefulness checking.
4 #![allow(rustc::potential_query_instability)]
5 #![feature(assert_matches)]
6 #![feature(associated_type_bounds)]
7 #![feature(box_patterns)]
8 #![feature(if_let_guard)]
9 #![feature(let_chains)]
10 #![feature(min_specialization)]
11 #![feature(once_cell)]
12 #![feature(try_blocks)]
13 #![recursion_limit = "256"]
18 extern crate rustc_middle
;
26 use rustc_middle
::ty
::query
::Providers
;
28 pub fn provide(providers
: &mut Providers
) {
29 providers
.check_match
= thir
::pattern
::check_match
;
30 providers
.lit_to_const
= thir
::constant
::lit_to_const
;
31 providers
.lit_to_mir_constant
= build
::lit_to_mir_constant
;
32 providers
.mir_built
= build
::mir_built
;
33 providers
.thir_check_unsafety
= check_unsafety
::thir_check_unsafety
;
34 providers
.thir_check_unsafety_for_const_arg
= check_unsafety
::thir_check_unsafety_for_const_arg
;
35 providers
.thir_body
= thir
::cx
::thir_body
;
36 providers
.thir_tree
= thir
::cx
::thir_tree
;