]>
git.proxmox.com Git - rustc.git/blob - src/librustc_mir/lib.rs
3 Rust MIR: a lowered representation of Rust. Also: an experiment!
8 #![feature(in_band_lifetimes)]
9 #![feature(inner_deref)]
10 #![feature(slice_patterns)]
11 #![feature(bool_to_option)]
12 #![feature(box_patterns)]
13 #![feature(box_syntax)]
14 #![feature(crate_visibility_modifier)]
15 #![feature(core_intrinsics)]
17 #![feature(decl_macro)]
18 #![feature(drain_filter)]
19 #![feature(exhaustive_patterns)]
20 #![feature(iter_order_by)]
21 #![feature(never_type)]
22 #![feature(specialization)]
23 #![feature(try_trait)]
24 #![feature(unicode_internals)]
25 #![feature(slice_concat_ext)]
26 #![feature(trusted_len)]
27 #![feature(try_blocks)]
28 #![feature(associated_type_bounds)]
29 #![feature(range_is_empty)]
30 #![feature(stmt_expr_attributes)]
31 #![feature(trait_alias)]
32 #![feature(matches_macro)]
34 #![recursion_limit="256"]
36 #[macro_use] extern crate log;
37 #[macro_use] extern crate rustc;
38 #[macro_use] extern crate syntax;
52 use rustc
::ty
::query
::Providers
;
54 pub fn provide(providers
: &mut Providers
<'_
>) {
55 borrow_check
::provide(providers
);
56 shim
::provide(providers
);
57 transform
::provide(providers
);
58 monomorphize
::partitioning
::provide(providers
);
59 providers
.const_eval
= const_eval
::const_eval_provider
;
60 providers
.const_eval_raw
= const_eval
::const_eval_raw_provider
;
61 providers
.check_match
= hair
::pattern
::check_match
;
62 providers
.const_caller_location
= const_eval
::const_caller_location
;
63 providers
.const_field
= |tcx
, param_env_and_value
| {
64 let (param_env
, (value
, field
)) = param_env_and_value
.into_parts();
65 const_eval
::const_field(tcx
, param_env
, None
, field
, value
)