69 lines
1.6 KiB
Rust
Raw Normal View History

2015-08-18 17:59:21 -04:00
/*!
Rust MIR: a lowered representation of Rust. Also: an experiment!
*/
2019-02-08 19:56:52 +09:00
#![feature(nll)]
#![feature(in_band_lifetimes)]
#![feature(slice_patterns)]
2016-02-11 18:05:28 +02:00
#![feature(box_patterns)]
#![feature(box_syntax)]
#![feature(crate_visibility_modifier)]
2017-12-06 09:25:29 +01:00
#![feature(core_intrinsics)]
2018-09-06 15:33:54 -04:00
#![feature(const_fn)]
2017-12-06 09:25:29 +01:00
#![feature(decl_macro)]
#![feature(exhaustive_patterns)]
2016-05-07 19:14:28 +03:00
#![feature(rustc_diagnostic_macros)]
#![feature(rustc_attrs)]
#![feature(never_type)]
#![feature(specialization)]
2018-05-10 12:02:19 -06:00
#![feature(try_trait)]
#![feature(unicode_internals)]
#![feature(step_trait)]
#![feature(slice_concat_ext)]
2019-02-08 20:08:08 +09:00
#![feature(try_blocks)]
2015-08-18 17:59:21 -04:00
2018-01-21 19:46:14 +01:00
#![recursion_limit="256"]
2019-02-08 06:28:15 +09:00
#![deny(rust_2018_idioms)]
2019-04-15 13:35:08 +02:00
#![deny(internal)]
2019-02-08 06:28:15 +09:00
#![allow(explicit_outlives_requirements)]
2018-01-21 19:46:14 +01:00
2015-08-18 17:59:21 -04:00
#[macro_use] extern crate log;
2016-03-28 22:22:14 +02:00
#[macro_use]
extern crate rustc;
2017-12-06 09:25:29 +01:00
#[macro_use] extern crate rustc_data_structures;
2019-02-08 06:28:15 +09:00
#[allow(unused_extern_crates)]
extern crate serialize as rustc_serialize; // used by deriving
2016-05-07 19:14:28 +03:00
#[macro_use]
extern crate syntax;
2015-08-18 17:59:21 -04:00
2019-04-17 07:35:54 +09:00
mod error_codes;
2016-05-07 19:14:28 +03:00
mod borrow_check;
2017-05-01 18:44:25 -04:00
mod build;
2017-08-19 03:09:55 +03:00
mod dataflow;
mod hair;
mod lints;
mod shim;
pub mod transform;
pub mod util;
2017-12-14 11:36:28 +01:00
pub mod interpret;
2017-10-25 15:39:54 +02:00
pub mod monomorphize;
pub mod const_eval;
2018-06-13 16:44:43 +03:00
use rustc::ty::query::Providers;
2019-02-08 06:28:15 +09:00
pub fn provide(providers: &mut Providers<'_>) {
borrow_check::provide(providers);
shim::provide(providers);
transform::provide(providers);
monomorphize::partitioning::provide(providers);
providers.const_eval = const_eval::const_eval_provider;
providers.const_eval_raw = const_eval::const_eval_raw_provider;
2018-01-26 16:12:07 +01:00
providers.check_match = hair::pattern::check_match;
}
__build_diagnostic_array! { librustc_mir, DIAGNOSTICS }