]>
Commit | Line | Data |
---|---|---|
e9174d1e | 1 | /*! |
1a4d82fc | 2 | |
74b04a01 | 3 | Rust MIR: a lowered representation of Rust. |
1a4d82fc | 4 | |
e9174d1e | 5 | */ |
1a4d82fc | 6 | |
17df50a5 | 7 | #![feature(assert_matches)] |
60c5eb7d | 8 | #![feature(bool_to_option)] |
7453a54e | 9 | #![feature(box_patterns)] |
c295e0f8 | 10 | #![feature(control_flow_enum)] |
83c7162d | 11 | #![feature(crate_visibility_modifier)] |
f9f354fc | 12 | #![feature(decl_macro)] |
1b1a35ee | 13 | #![feature(exact_size_is_empty)] |
c295e0f8 | 14 | #![feature(in_band_lifetimes)] |
cdc7bbd5 | 15 | #![feature(iter_zip)] |
3c0e092e | 16 | #![feature(let_else)] |
6a06907d | 17 | #![feature(map_try_insert)] |
f9f354fc | 18 | #![feature(min_specialization)] |
17df50a5 | 19 | #![feature(slice_ptr_get)] |
c295e0f8 XL |
20 | #![feature(option_get_or_insert_default)] |
21 | #![feature(never_type)] | |
22 | #![feature(trait_alias)] | |
dc9dc135 | 23 | #![feature(trusted_len)] |
c295e0f8 | 24 | #![feature(trusted_step)] |
9fa01778 | 25 | #![feature(try_blocks)] |
dfeec247 | 26 | #![recursion_limit = "256"] |
94b46f34 | 27 | |
dfeec247 | 28 | #[macro_use] |
3dfed10e | 29 | extern crate tracing; |
dfeec247 | 30 | #[macro_use] |
ba9703b0 | 31 | extern crate rustc_middle; |
e9174d1e | 32 | |
dfeec247 | 33 | pub mod const_eval; |
dfeec247 | 34 | pub mod interpret; |
92a42be0 | 35 | pub mod transform; |
cc61c64b | 36 | pub mod util; |
9e0c209e | 37 | |
ba9703b0 | 38 | use rustc_middle::ty::query::Providers; |
8bb4bdeb | 39 | |
f035d41b | 40 | pub fn provide(providers: &mut Providers) { |
dfeec247 | 41 | const_eval::provide(providers); |
1b1a35ee XL |
42 | providers.eval_to_const_value_raw = const_eval::eval_to_const_value_raw_provider; |
43 | providers.eval_to_allocation_raw = const_eval::eval_to_allocation_raw_provider; | |
e74abb32 | 44 | providers.const_caller_location = const_eval::const_caller_location; |
dfeec247 XL |
45 | providers.destructure_const = |tcx, param_env_and_value| { |
46 | let (param_env, value) = param_env_and_value.into_parts(); | |
47 | const_eval::destructure_const(tcx, param_env, value) | |
48 | }; | |
6a06907d XL |
49 | providers.const_to_valtree = |tcx, param_env_and_value| { |
50 | let (param_env, raw) = param_env_and_value.into_parts(); | |
51 | const_eval::const_to_valtree(tcx, param_env, raw) | |
52 | }; | |
1b1a35ee XL |
53 | providers.deref_const = |tcx, param_env_and_value| { |
54 | let (param_env, value) = param_env_and_value.into_parts(); | |
55 | const_eval::deref_const(tcx, param_env, value) | |
56 | }; | |
cc61c64b | 57 | } |