//!
//! This API is completely unstable and subject to change.
-#![crate_name = "rustc_passes"]
-#![crate_type = "dylib"]
-#![crate_type = "rlib"]
#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
html_root_url = "https://doc.rust-lang.org/nightly/")]
-#![deny(warnings)]
+#![feature(nll)]
#![feature(rustc_diagnostic_macros)]
-#![cfg_attr(stage0, unstable(feature = "rustc_private", issue = "27812"))]
-#![cfg_attr(stage0, feature(rustc_private))]
-#![cfg_attr(stage0, feature(staged_api))]
-
#[macro_use]
extern crate rustc;
-extern crate rustc_const_eval;
-extern crate rustc_const_math;
+extern crate rustc_mir;
+extern crate rustc_data_structures;
#[macro_use]
extern crate log;
extern crate syntax_pos;
extern crate rustc_errors as errors;
-pub mod diagnostics;
+use rustc::ty::query::Providers;
+
+mod diagnostics;
pub mod ast_validation;
-pub mod consts;
+pub mod rvalue_promotion;
pub mod hir_stats;
pub mod loops;
-pub mod mir_stats;
-pub mod no_asm;
-pub mod static_recursion;
+mod mir_stats;
+
+__build_diagnostic_array! { librustc_passes, DIAGNOSTICS }
+
+pub fn provide(providers: &mut Providers) {
+ rvalue_promotion::provide(providers);
+}