]> git.proxmox.com Git - rustc.git/blame - compiler/rustc_mir_build/src/lib.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / compiler / rustc_mir_build / src / lib.rs
CommitLineData
dfeec247
XL
1//! Construction of MIR from HIR.
2//!
3//! This crate also contains the match exhaustiveness and usefulness checking.
5e7ed085 4#![allow(rustc::potential_query_instability)]
2b03887a 5#![feature(assert_matches)]
487cf647 6#![feature(associated_type_bounds)]
dfeec247 7#![feature(box_patterns)]
04454e1e 8#![feature(if_let_guard)]
5e7ed085 9#![feature(let_chains)]
17df50a5 10#![feature(min_specialization)]
9c376795 11#![feature(try_blocks)]
dfeec247
XL
12#![recursion_limit = "256"]
13
14#[macro_use]
3dfed10e 15extern crate tracing;
dfeec247 16#[macro_use]
ba9703b0 17extern crate rustc_middle;
dfeec247
XL
18
19mod build;
17df50a5 20mod check_unsafety;
9c376795 21mod errors;
add651ee 22pub mod lints;
6a06907d 23pub mod thir;
dfeec247 24
49aad941 25use rustc_middle::query::Providers;
dfeec247 26
9ffffee4 27use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
49aad941 28use rustc_fluent_macro::fluent_messages;
9ffffee4 29
353b0b11 30fluent_messages! { "../messages.ftl" }
9ffffee4 31
f035d41b 32pub fn provide(providers: &mut Providers) {
3dfed10e
XL
33 providers.check_match = thir::pattern::check_match;
34 providers.lit_to_const = thir::constant::lit_to_const;
dfeec247 35 providers.mir_built = build::mir_built;
fe692bf9
FG
36 providers.closure_saved_names_of_captured_variables =
37 build::closure_saved_names_of_captured_variables;
17df50a5 38 providers.thir_check_unsafety = check_unsafety::thir_check_unsafety;
17df50a5 39 providers.thir_body = thir::cx::thir_body;
9ffffee4
FG
40 providers.thir_tree = thir::print::thir_tree;
41 providers.thir_flat = thir::print::thir_flat;
dfeec247 42}