about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-01-05 10:58:44 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2020-01-11 03:27:39 +0100
commited69fbbc44b6e6ba5c41905835deaaae53e6f867 (patch)
tree8b9d9660013c3fedb64902d24b892027270f7850
parentf361b71a7dd5516e40fe77f22d28b9ed6d76e7bf (diff)
downloadrust-ed69fbbc44b6e6ba5c41905835deaaae53e6f867.tar.gz
rust-ed69fbbc44b6e6ba5c41905835deaaae53e6f867.zip
ast_validation -> new crate rustc_ast_passes
-rw-r--r--Cargo.lock14
-rw-r--r--src/librustc_ast_passes/Cargo.toml18
-rw-r--r--src/librustc_ast_passes/ast_validation.rs (renamed from src/librustc_passes/ast_validation.rs)4
-rw-r--r--src/librustc_ast_passes/lib.rs7
-rw-r--r--src/librustc_interface/Cargo.toml1
-rw-r--r--src/librustc_interface/passes.rs4
-rw-r--r--src/librustc_passes/lib.rs1
7 files changed, 44 insertions, 5 deletions
diff --git a/Cargo.lock b/Cargo.lock
index b8086c83b8d..385863abf67 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3375,6 +3375,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustc_ast_passes"
+version = "0.0.0"
+dependencies = [
+ "rustc_data_structures",
+ "rustc_error_codes",
+ "rustc_errors",
+ "rustc_parse",
+ "rustc_session",
+ "rustc_span",
+ "syntax",
+]
+
+[[package]]
 name = "rustc_builtin_macros"
 version = "0.0.0"
 dependencies = [
@@ -3615,6 +3628,7 @@ dependencies = [
  "rustc",
  "rustc-rayon",
  "rustc_ast_lowering",
+ "rustc_ast_passes",
  "rustc_builtin_macros",
  "rustc_codegen_llvm",
  "rustc_codegen_ssa",
diff --git a/src/librustc_ast_passes/Cargo.toml b/src/librustc_ast_passes/Cargo.toml
new file mode 100644
index 00000000000..f658618fe8a
--- /dev/null
+++ b/src/librustc_ast_passes/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ast_passes"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+name = "rustc_ast_passes"
+path = "lib.rs"
+
+[dependencies]
+rustc_data_structures = { path = "../librustc_data_structures" }
+rustc_errors = { path = "../librustc_errors", package = "rustc_errors" }
+rustc_error_codes = { path = "../librustc_error_codes" }
+rustc_parse = { path = "../librustc_parse" }
+rustc_session = { path = "../librustc_session" }
+rustc_span = { path = "../librustc_span" }
+syntax = { path = "../libsyntax" }
diff --git a/src/librustc_passes/ast_validation.rs b/src/librustc_ast_passes/ast_validation.rs
index bc8d8a414c4..c915b7ba216 100644
--- a/src/librustc_passes/ast_validation.rs
+++ b/src/librustc_ast_passes/ast_validation.rs
@@ -6,10 +6,10 @@
 // This pass is supposed to perform only simple checks not requiring name resolution
 // or type checking or some other kind of complex analysis.
 
-use rustc::lint::builtin::PATTERNS_IN_FNS_WITHOUT_BODY;
 use rustc_data_structures::fx::FxHashMap;
 use rustc_errors::{struct_span_err, Applicability, FatalError};
 use rustc_parse::validate_attr;
+use rustc_session::lint::builtin::PATTERNS_IN_FNS_WITHOUT_BODY;
 use rustc_session::lint::LintBuffer;
 use rustc_session::Session;
 use rustc_span::source_map::Spanned;
@@ -907,7 +907,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
                     }
                 }
 
-                Some(Constness::Const) => bug!("Parser should reject bare `const` on bounds"),
+                Some(Constness::Const) => panic!("Parser should reject bare `const` on bounds"),
                 None => {}
             }
         }
diff --git a/src/librustc_ast_passes/lib.rs b/src/librustc_ast_passes/lib.rs
new file mode 100644
index 00000000000..8011478ed2f
--- /dev/null
+++ b/src/librustc_ast_passes/lib.rs
@@ -0,0 +1,7 @@
+//! The `rustc_ast_passes` crate contains passes which validate the AST in `syntax`
+//! parsed by `rustc_parse` and then lowered, after the passes in this crate,
+//! by `rustc_ast_lowering`.
+
+#![feature(slice_patterns)]
+
+pub mod ast_validation;
diff --git a/src/librustc_interface/Cargo.toml b/src/librustc_interface/Cargo.toml
index 9bd19fb38e7..eb0551c6065 100644
--- a/src/librustc_interface/Cargo.toml
+++ b/src/librustc_interface/Cargo.toml
@@ -22,6 +22,7 @@ rustc_span = { path = "../librustc_span" }
 rustc_serialize = { path = "../libserialize", package = "serialize" }
 rustc = { path = "../librustc" }
 rustc_ast_lowering = { path = "../librustc_ast_lowering" }
+rustc_ast_passes = { path = "../librustc_ast_passes" }
 rustc_incremental = { path = "../librustc_incremental" }
 rustc_traits = { path = "../librustc_traits" }
 rustc_data_structures = { path = "../librustc_data_structures" }
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index e8210bfacd3..27bed31b9d6 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -29,7 +29,7 @@ use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};
 use rustc_incremental;
 use rustc_mir as mir;
 use rustc_parse::{parse_crate_from_file, parse_crate_from_source_str};
-use rustc_passes::{self, ast_validation, hir_stats, layout_test};
+use rustc_passes::{self, hir_stats, layout_test};
 use rustc_plugin_impl as plugin;
 use rustc_privacy;
 use rustc_resolve::{Resolver, ResolverArenas};
@@ -344,7 +344,7 @@ fn configure_and_expand_inner<'a>(
     }
 
     let has_proc_macro_decls = sess.time("AST_validation", || {
-        ast_validation::check_crate(sess, &krate, &mut resolver.lint_buffer())
+        rustc_ast_passes::ast_validation::check_crate(sess, &krate, &mut resolver.lint_buffer())
     });
 
     let crate_types = sess.crate_types.borrow();
diff --git a/src/librustc_passes/lib.rs b/src/librustc_passes/lib.rs
index f128d3891d7..65eb07b989d 100644
--- a/src/librustc_passes/lib.rs
+++ b/src/librustc_passes/lib.rs
@@ -17,7 +17,6 @@ extern crate log;
 
 use rustc::ty::query::Providers;
 
-pub mod ast_validation;
 mod check_const;
 pub mod dead;
 mod diagnostic_items;