diff --git a/mk/crates.mk b/mk/crates.mk index e7c6a716f4cfc..7a0f24d1b9f1f 100644 --- a/mk/crates.mk +++ b/mk/crates.mk @@ -56,7 +56,8 @@ TARGET_CRATES := libc std flate arena term \ RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \ rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \ rustc_data_structures -HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros +SYNTAX_CRATES := syntax syntax_ast_map +HOST_CRATES := $(SYNTAX_CRATES) $(RUSTC_CRATES) rustdoc fmt_macros CRATES := $(TARGET_CRATES) $(HOST_CRATES) TOOLS := compiletest rustdoc rustc rustbook @@ -68,24 +69,25 @@ DEPS_std := core libc rand alloc collections rustc_unicode \ native:rust_builtin native:backtrace native:rustrt_native \ rustc_bitflags DEPS_graphviz := std -DEPS_syntax := std term serialize log fmt_macros arena libc +DEPS_syntax := std term serialize log fmt_macros libc +DEPS_syntax_ast_map := std arena syntax DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \ - rustc_typeck rustc_resolve log syntax serialize rustc_llvm \ - rustc_trans rustc_privacy rustc_lint + rustc_typeck rustc_resolve log syntax syntax_ast_map serialize \ + rustc_llvm rustc_trans rustc_privacy rustc_lint DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \ - log syntax serialize rustc_llvm -DEPS_rustc_typeck := rustc syntax -DEPS_rustc_borrowck := rustc log graphviz syntax -DEPS_rustc_resolve := rustc log syntax -DEPS_rustc_privacy := rustc log syntax -DEPS_rustc_lint := rustc log syntax -DEPS_rustc := syntax flate arena serialize getopts rbml \ + log syntax syntax_ast_map serialize rustc_llvm +DEPS_rustc_typeck := rustc syntax syntax_ast_map +DEPS_rustc_borrowck := rustc log graphviz syntax syntax_ast_map +DEPS_rustc_resolve := rustc log syntax syntax_ast_map +DEPS_rustc_privacy := rustc log syntax syntax_ast_map +DEPS_rustc_lint := rustc log syntax syntax_ast_map +DEPS_rustc := syntax syntax_ast_map flate arena serialize getopts rbml \ log graphviz rustc_llvm rustc_back rustc_data_structures DEPS_rustc_llvm := native:rustllvm libc std DEPS_rustc_back := std syntax rustc_llvm flate log libc DEPS_rustc_data_structures := std log serialize -DEPS_rustdoc := rustc rustc_driver native:hoedown serialize getopts \ +DEPS_rustdoc := rustc rustc_driver native:hoedown syntax syntax_ast_map serialize getopts \ test rustc_lint DEPS_rustc_bitflags := core DEPS_flate := std native:miniz diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index 9093b3b9f5c91..17c8803e106bd 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -59,6 +59,7 @@ extern crate rbml; extern crate collections; #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; #[macro_use] #[no_link] extern crate rustc_bitflags; extern crate serialize as rustc_serialize; // used by deriving diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index d528e38d341cf..80f0ba2337480 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -21,11 +21,11 @@ use rbml; use rbml::reader; use std::rc::Rc; use syntax::ast; -use syntax::ast_map; use syntax::attr; use syntax::attr::AttrMetaMethods; use syntax::diagnostic::expect; use syntax::parse::token; +use syntax_ast_map as ast_map; use std::collections::hash_map::HashMap; diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index cbd542567709c..9c58bacf01aed 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -42,7 +42,6 @@ use std::str; use rbml::reader; use rbml; use serialize::Decodable; -use syntax::ast_map; use syntax::attr; use syntax::parse::token::{IdentInterner, special_idents}; use syntax::parse::token; @@ -50,6 +49,7 @@ use syntax::print::pprust; use syntax::ast; use syntax::codemap; use syntax::ptr::P; +use syntax_ast_map as ast_map; pub type Cmd<'a> = &'a crate_metadata; diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 29270bd6c624b..4fac8bb259d36 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -34,7 +34,6 @@ use std::io::prelude::*; use std::io::{Cursor, SeekFrom}; use syntax::abi; use syntax::ast::{self, DefId, NodeId}; -use syntax::ast_map::{self, LinkedPath, PathElem, PathElems}; use syntax::ast_util::*; use syntax::ast_util; use syntax::attr; @@ -47,6 +46,8 @@ use syntax::ptr::P; use syntax::visit::Visitor; use syntax::visit; use syntax; +use syntax_ast_map as ast_map; +use syntax_ast_map::{LinkedPath, PathElem, PathElems}; use rbml::writer::Encoder; /// A borrowed version of `ast::InlinedItem`. diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index ee8373279d976..7fb2514160b0b 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -31,12 +31,13 @@ use middle::subst::VecPerParamSpace; use middle::ty::{self, Ty, MethodCall, MethodCallee, MethodOrigin}; use util::ppaux::ty_to_string; -use syntax::{ast, ast_map, ast_util, codemap, fold}; +use syntax::{ast, ast_util, codemap, fold}; use syntax::codemap::Span; use syntax::fold::Folder; use syntax::parse::token; use syntax::ptr::P; use syntax; +use syntax_ast_map as ast_map; use std::cell::Cell; use std::io::SeekFrom; diff --git a/src/librustc/middle/cfg/graphviz.rs b/src/librustc/middle/cfg/graphviz.rs index 3a6966ab11290..e8245bb20405f 100644 --- a/src/librustc/middle/cfg/graphviz.rs +++ b/src/librustc/middle/cfg/graphviz.rs @@ -17,7 +17,7 @@ use std::borrow::IntoCow; use graphviz as dot; use syntax::ast; -use syntax::ast_map; +use syntax_ast_map as ast_map; use middle::cfg; diff --git a/src/librustc/middle/check_static_recursion.rs b/src/librustc/middle/check_static_recursion.rs index b97978fc03fff..8337c73dd2a9a 100644 --- a/src/librustc/middle/check_static_recursion.rs +++ b/src/librustc/middle/check_static_recursion.rs @@ -15,9 +15,10 @@ use session::Session; use middle::def::{DefStatic, DefConst, DefMap}; use syntax::ast; -use syntax::{ast_util, ast_map}; +use syntax::ast_util; use syntax::visit::Visitor; use syntax::visit; +use syntax_ast_map as ast_map; struct CheckCrateVisitor<'a, 'ast: 'a> { sess: &'a Session, diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index 2c6ffb3281fcb..1e79757717d87 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -27,7 +27,8 @@ use syntax::codemap::Span; use syntax::feature_gate; use syntax::parse::token::InternedString; use syntax::ptr::P; -use syntax::{ast_map, ast_util, codemap}; +use syntax::{ast_util, codemap}; +use syntax_ast_map as ast_map; use std::borrow::{Cow, IntoCow}; use std::num::wrapping::OverflowingOps; diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index 2befbf9924577..951e48b0f0df2 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -17,10 +17,11 @@ use lint; use util::nodemap::NodeSet; use std::collections::HashSet; -use syntax::{ast, ast_map, codemap}; +use syntax::{ast, codemap}; use syntax::ast_util::{local_def, is_local}; use syntax::attr::{self, AttrMetaMethods}; use syntax::visit::{self, Visitor}; +use syntax_ast_map as ast_map; // Any local node that may call something in its body block should be // explored. For example, if it's a live NodeItem that is a diff --git a/src/librustc/middle/entry.rs b/src/librustc/middle/entry.rs index 0ce9db1c80f3f..5cb5d9b6cbb9c 100644 --- a/src/librustc/middle/entry.rs +++ b/src/librustc/middle/entry.rs @@ -11,12 +11,12 @@ use session::{config, Session}; use syntax::ast::{Name, NodeId, Item, ItemFn}; -use syntax::ast_map; use syntax::attr; use syntax::codemap::Span; use syntax::parse::token; use syntax::visit; use syntax::visit::Visitor; +use syntax_ast_map as ast_map; struct EntryContext<'a, 'ast: 'a> { session: &'a Session, diff --git a/src/librustc/middle/infer/error_reporting.rs b/src/librustc/middle/infer/error_reporting.rs index 3dbbcce27b6ea..60772d0683a2b 100644 --- a/src/librustc/middle/infer/error_reporting.rs +++ b/src/librustc/middle/infer/error_reporting.rs @@ -82,13 +82,13 @@ use std::char::from_u32; use std::rc::Rc; use std::string::String; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::name_to_dummy_lifetime; use syntax::owned_slice::OwnedSlice; use syntax::codemap; use syntax::parse::token; use syntax::print::pprust; use syntax::ptr::P; +use syntax_ast_map as ast_map; use util::ppaux::bound_region_to_string; use util::ppaux::note_and_explain_region; diff --git a/src/librustc/middle/intrinsicck.rs b/src/librustc/middle/intrinsicck.rs index 2a4c25345447f..7439655493b7a 100644 --- a/src/librustc/middle/intrinsicck.rs +++ b/src/librustc/middle/intrinsicck.rs @@ -18,11 +18,11 @@ use util::ppaux::Repr; use syntax::abi::RustIntrinsic; use syntax::ast::DefId; use syntax::ast; -use syntax::ast_map::NodeForeignItem; use syntax::codemap::Span; use syntax::parse::token; use syntax::visit::Visitor; use syntax::visit; +use syntax_ast_map::NodeForeignItem; pub fn check_crate(tcx: &ctxt) { let mut visitor = IntrinsicCheckingVisitor { diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 003306fe558a1..57270d83d391e 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -82,10 +82,10 @@ use util::ppaux::{Repr, UserString}; use syntax::ast::{MutImmutable, MutMutable}; use syntax::ast; -use syntax::ast_map; use syntax::codemap::Span; use syntax::print::pprust; use syntax::parse::token; +use syntax_ast_map as ast_map; use std::cell::RefCell; use std::rc::Rc; diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index 1bd45b5fc8601..3b54ac4572c6e 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -24,11 +24,11 @@ use util::nodemap::NodeSet; use std::collections::HashSet; use syntax::abi; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::is_local; use syntax::attr; use syntax::visit::Visitor; use syntax::visit; +use syntax_ast_map as ast_map; // Returns true if the given set of generics implies that the item it's // associated with must be inlined. diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index 2f7296051c566..b62300c3aa6cf 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -26,9 +26,9 @@ use syntax::codemap::{self, Span}; use syntax::{ast, visit}; use syntax::ast::{Block, Item, FnDecl, NodeId, Arm, Pat, Stmt, Expr, Local}; use syntax::ast_util::stmt_id; -use syntax::ast_map; use syntax::ptr::P; use syntax::visit::{Visitor, FnKind}; +use syntax_ast_map as ast_map; /// CodeExtent represents a statically-describable extent that can be /// used to bound the lifetime/region for values. diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 2c94399f92138..2f0078b377376 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -88,7 +88,8 @@ use syntax::parse::token::{self, InternedString, special_idents}; use syntax::print::pprust; use syntax::ptr::P; use syntax::ast; -use syntax::ast_map::{self, LinkedPath}; +use syntax_ast_map as ast_map; +use syntax_ast_map::LinkedPath; pub type Disr = u64; diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index 12a6d5848572d..825c899dca590 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -31,13 +31,13 @@ use std::collections::hash_state::HashState; use std::hash::Hash; use std::rc::Rc; use syntax::abi; -use syntax::ast_map; use syntax::codemap::{Span, Pos}; use syntax::parse::token; use syntax::print::pprust; use syntax::ptr::P; use syntax::{ast, ast_util}; use syntax::owned_slice::OwnedSlice; +use syntax_ast_map as ast_map; /// Produces a string suitable for debugging output. pub trait Repr<'tcx> { diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index 502321d07598c..5add96a6e7464 100644 --- a/src/librustc_borrowck/borrowck/mod.rs +++ b/src/librustc_borrowck/borrowck/mod.rs @@ -33,14 +33,14 @@ use rustc::util::ppaux::{note_and_explain_region, Repr, UserString}; use std::rc::Rc; use std::string::String; use syntax::ast; -use syntax::ast_map; -use syntax::ast_map::blocks::{FnLikeNode, FnParts}; use syntax::ast_util; use syntax::codemap::Span; use syntax::parse::token; use syntax::visit; use syntax::visit::{Visitor, FnKind}; use syntax::ast::{FnDecl, Block, NodeId}; +use syntax_ast_map as ast_map; +use syntax_ast_map::blocks::{FnLikeNode, FnParts}; pub mod check_loans; diff --git a/src/librustc_borrowck/lib.rs b/src/librustc_borrowck/lib.rs index 647ea3555ba91..ce0d2e38b43cc 100644 --- a/src/librustc_borrowck/lib.rs +++ b/src/librustc_borrowck/lib.rs @@ -30,6 +30,7 @@ #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; // for "clarity", rename the graphviz crate to dot; graphviz within `borrowck` // refers to the borrowck-specific graphviz adapter traits. diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 154e0a1f64460..67fa5b69dcc60 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -37,13 +37,13 @@ use std::fs; use std::io::{self, Write}; use std::path::{Path, PathBuf}; use syntax::ast; -use syntax::ast_map; use syntax::attr; use syntax::attr::AttrMetaMethods; use syntax::diagnostics; use syntax::parse; use syntax::parse::token; use syntax; +use syntax_ast_map as ast_map; pub fn compile_input(sess: Session, cfg: ast::CrateConfig, diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 38217f8dad24e..7f63f1efb59c6 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -53,6 +53,7 @@ extern crate serialize; extern crate rustc_llvm as llvm; #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; pub use syntax::diagnostic; diff --git a/src/librustc_driver/pretty.rs b/src/librustc_driver/pretty.rs index 00c3450ebb935..96a23d8f7fb90 100644 --- a/src/librustc_driver/pretty.rs +++ b/src/librustc_driver/pretty.rs @@ -30,11 +30,12 @@ use rustc_borrowck::graphviz as borrowck_dot; use rustc_resolve as resolve; use syntax::ast; -use syntax::ast_map::{self, blocks, NodePrinter}; use syntax::codemap; use syntax::fold::{self, Folder}; use syntax::print::{pp, pprust}; use syntax::ptr::P; +use syntax_ast_map as ast_map; +use syntax_ast_map::{blocks, NodePrinter}; use graphviz as dot; diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index c12ac501c45a2..6d907d27d2dd1 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -44,7 +44,7 @@ use std::collections::hash_map::Entry::{Occupied, Vacant}; use std::{cmp, slice}; use std::{i8, i16, i32, i64, u8, u16, u32, u64, f32, f64}; -use syntax::{abi, ast, ast_map}; +use syntax::{abi, ast}; use syntax::ast_util::{self, is_shift_binop, local_def}; use syntax::attr::{self, AttrMetaMethods}; use syntax::codemap::{self, Span}; @@ -53,6 +53,7 @@ use syntax::parse::token; use syntax::ast::{TyIs, TyUs, TyI8, TyU8, TyI16, TyU16, TyI32, TyU32, TyI64, TyU64}; use syntax::ptr::P; use syntax::visit::{self, Visitor}; +use syntax_ast_map as ast_map; // hardwired lints from librustc pub use lint::builtin::*; diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs index 34f7436d0cd5d..5eda3b2d2c43a 100644 --- a/src/librustc_lint/lib.rs +++ b/src/librustc_lint/lib.rs @@ -43,6 +43,7 @@ #![cfg_attr(test, feature(test))] extern crate syntax; +extern crate syntax_ast_map; #[macro_use] extern crate rustc; #[macro_use] diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index 70c824a67a0ef..53d48b6df6f79 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -25,6 +25,7 @@ #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; extern crate rustc; @@ -46,11 +47,12 @@ use rustc::middle::ty::MethodTraitObject; use rustc::middle::ty::{self, Ty}; use rustc::util::nodemap::{NodeMap, NodeSet}; -use syntax::{ast, ast_map}; +use syntax::ast; use syntax::ast_util::{is_local, local_def}; use syntax::codemap::Span; use syntax::parse::token; use syntax::visit::{self, Visitor}; +use syntax_ast_map as ast_map; type Context<'a, 'tcx> = (&'a MethodMap<'tcx>, &'a def::ExportMap); diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index d300045c0ec01..7fea85a9b5141 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -27,6 +27,7 @@ #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; #[macro_use] #[no_link] extern crate rustc_bitflags; extern crate rustc; @@ -77,7 +78,6 @@ use syntax::ast::{TyPath, TyPtr}; use syntax::ast::{TyRptr, TyStr, TyUs, TyU8, TyU16, TyU32, TyU64, TyUint}; use syntax::ast::TypeImplItem; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::{local_def, walk_pat}; use syntax::attr::AttrMetaMethods; use syntax::ext::mtwt; @@ -85,6 +85,7 @@ use syntax::parse::token::{self, special_names, special_idents}; use syntax::ptr::P; use syntax::codemap::{self, Span, Pos}; use syntax::visit::{self, Visitor}; +use syntax_ast_map as ast_map; use std::collections::{HashMap, HashSet}; use std::collections::hash_map::Entry::{Occupied, Vacant}; diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index b53be98a06cc3..19b3911aa9646 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -38,10 +38,10 @@ use std::str; use flate; use serialize::hex::ToHex; use syntax::ast; -use syntax::ast_map::{PathElem, PathElems, PathName}; use syntax::attr::AttrMetaMethods; use syntax::codemap::Span; use syntax::parse::token; +use syntax_ast_map::{PathElem, PathElems, PathName}; // RLIB LLVM-BYTECODE OBJECT LAYOUT // Version 1 diff --git a/src/librustc_trans/lib.rs b/src/librustc_trans/lib.rs index b0eacd1a55d41..594cc15b6a9e4 100644 --- a/src/librustc_trans/lib.rs +++ b/src/librustc_trans/lib.rs @@ -55,6 +55,7 @@ extern crate rustc_llvm as llvm; #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; pub use rustc::session; pub use rustc::metadata; diff --git a/src/librustc_trans/save/mod.rs b/src/librustc_trans/save/mod.rs index 57dba30723f9c..efe5e4888499d 100644 --- a/src/librustc_trans/save/mod.rs +++ b/src/librustc_trans/save/mod.rs @@ -39,7 +39,6 @@ use std::path::{Path, PathBuf}; use syntax::ast_util; use syntax::ast::{self, NodeId, DefId}; -use syntax::ast_map::NodeItem; use syntax::attr; use syntax::codemap::*; use syntax::parse::token::{self, get_ident, keywords}; @@ -47,6 +46,7 @@ use syntax::owned_slice::OwnedSlice; use syntax::visit::{self, Visitor}; use syntax::print::pprust::{path_to_string, ty_to_string}; use syntax::ptr::P; +use syntax_ast_map::NodeItem; use self::span_utils::SpanUtils; use self::recorder::{Recorder, FmtStrs}; diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 59f3ff7260261..7714894e5cd85 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -99,7 +99,8 @@ use syntax::codemap::Span; use syntax::parse::token::InternedString; use syntax::visit::Visitor; use syntax::visit; -use syntax::{ast, ast_util, ast_map}; +use syntax::{ast, ast_util}; +use syntax_ast_map as ast_map; thread_local! { static TASK_LOCAL_INSN_KEY: RefCell>> = { diff --git a/src/librustc_trans/trans/callee.rs b/src/librustc_trans/trans/callee.rs index 0e8c33cd93a5b..b7442d31bd659 100644 --- a/src/librustc_trans/trans/callee.rs +++ b/src/librustc_trans/trans/callee.rs @@ -58,8 +58,8 @@ use util::ppaux::ty_to_string; use syntax::abi as synabi; use syntax::ast; -use syntax::ast_map; use syntax::ptr::P; +use syntax_ast_map as ast_map; #[derive(Copy, Clone)] pub struct MethodData { diff --git a/src/librustc_trans/trans/common.rs b/src/librustc_trans/trans/common.rs index 2ba963a42efbe..4034dc57fc2d8 100644 --- a/src/librustc_trans/trans/common.rs +++ b/src/librustc_trans/trans/common.rs @@ -50,10 +50,10 @@ use std::cell::{Cell, RefCell}; use std::result::Result as StdResult; use std::vec::Vec; use syntax::ast; -use syntax::ast_map::{PathElem, PathName}; use syntax::codemap::{DUMMY_SP, Span}; use syntax::parse::token::InternedString; use syntax::parse::token; +use syntax_ast_map::{PathElem, PathName}; use util::common::memoized; use util::nodemap::FnvHashSet; diff --git a/src/librustc_trans/trans/debuginfo.rs b/src/librustc_trans/trans/debuginfo.rs index 7c769eca74aab..c09e34b224202 100644 --- a/src/librustc_trans/trans/debuginfo.rs +++ b/src/librustc_trans/trans/debuginfo.rs @@ -217,8 +217,9 @@ use std::ptr; use std::rc::{Rc, Weak}; use syntax::util::interner::Interner; use syntax::codemap::{Span, Pos}; -use syntax::{ast, codemap, ast_util, ast_map, attr}; +use syntax::{ast, codemap, ast_util, attr}; use syntax::parse::token::{self, special_idents}; +use syntax_ast_map as ast_map; const DW_LANG_RUST: c_uint = 0x9000; diff --git a/src/librustc_trans/trans/foreign.rs b/src/librustc_trans/trans/foreign.rs index c025be2ee9877..0e5e0d47bff93 100644 --- a/src/librustc_trans/trans/foreign.rs +++ b/src/librustc_trans/trans/foreign.rs @@ -36,8 +36,8 @@ use syntax::abi::{RustIntrinsic, Rust, RustCall, Stdcall, Fastcall, System}; use syntax::codemap::Span; use syntax::parse::token::{InternedString, special_idents}; use syntax::parse::token; -use syntax::ast; -use syntax::{attr, ast_map}; +use syntax::{ast, attr}; +use syntax_ast_map as ast_map; use syntax::print::pprust; use util::ppaux::Repr; diff --git a/src/librustc_trans/trans/meth.rs b/src/librustc_trans/trans/meth.rs index e346fb0d93189..cfa2b99680b19 100644 --- a/src/librustc_trans/trans/meth.rs +++ b/src/librustc_trans/trans/meth.rs @@ -43,9 +43,10 @@ use util::ppaux::Repr; use std::rc::Rc; use syntax::abi::{Rust, RustCall}; use syntax::parse::token; -use syntax::{ast, ast_map, attr, visit}; +use syntax::{ast, attr, visit}; use syntax::codemap::DUMMY_SP; use syntax::ptr::P; +use syntax_ast_map as ast_map; // drop_glue pointer, size, align. const VTABLE_OFFSET: usize = 3; diff --git a/src/librustc_trans/trans/monomorphize.rs b/src/librustc_trans/trans/monomorphize.rs index 1c8d020494fab..c41f622cee418 100644 --- a/src/librustc_trans/trans/monomorphize.rs +++ b/src/librustc_trans/trans/monomorphize.rs @@ -29,10 +29,10 @@ use util::ppaux::Repr; use syntax::abi; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::local_def; use syntax::attr; use syntax::codemap::DUMMY_SP; +use syntax_ast_map as ast_map; use std::hash::{Hasher, Hash, SipHasher}; pub fn monomorphic_fn<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, diff --git a/src/librustc_typeck/coherence/mod.rs b/src/librustc_typeck/coherence/mod.rs index b0c994f7f6405..b1e0f2731331b 100644 --- a/src/librustc_typeck/coherence/mod.rs +++ b/src/librustc_typeck/coherence/mod.rs @@ -39,12 +39,12 @@ use syntax::ast::{Crate, DefId}; use syntax::ast::{Item, ItemImpl}; use syntax::ast::{LOCAL_CRATE, TraitRef}; use syntax::ast; -use syntax::ast_map::NodeItem; -use syntax::ast_map; use syntax::ast_util::local_def; use syntax::codemap::Span; use syntax::parse::token; use syntax::visit; +use syntax_ast_map as ast_map; +use syntax_ast_map::NodeItem; use util::nodemap::{DefIdMap, FnvHashMap}; use util::ppaux::Repr; diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 5ed93703d977f..86b2515f475b3 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -88,13 +88,13 @@ use std::rc::Rc; use syntax::abi; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::local_def; use syntax::codemap::Span; use syntax::parse::token::special_idents; use syntax::parse::token; use syntax::ptr::P; use syntax::visit; +use syntax_ast_map as ast_map; /////////////////////////////////////////////////////////////////////////// // Main entry point diff --git a/src/librustc_typeck/lib.rs b/src/librustc_typeck/lib.rs index be3fc860b2b12..bc960ab296532 100644 --- a/src/librustc_typeck/lib.rs +++ b/src/librustc_typeck/lib.rs @@ -87,6 +87,7 @@ This API is completely unstable and subject to change. #[macro_use] extern crate log; #[macro_use] extern crate syntax; +extern crate syntax_ast_map; extern crate arena; extern crate fmt_macros; @@ -109,8 +110,9 @@ use util::ppaux; use syntax::codemap::Span; use syntax::print::pprust::*; -use syntax::{ast, ast_map, abi}; +use syntax::{ast, abi}; use syntax::ast_util::local_def; +use syntax_ast_map as ast_map; use std::cell::RefCell; diff --git a/src/librustc_typeck/variance.rs b/src/librustc_typeck/variance.rs index 7575f12878a56..e50aaa00ec261 100644 --- a/src/librustc_typeck/variance.rs +++ b/src/librustc_typeck/variance.rs @@ -273,10 +273,10 @@ use middle::ty::{self, Ty}; use std::fmt; use std::rc::Rc; use syntax::ast; -use syntax::ast_map; use syntax::ast_util; use syntax::visit; use syntax::visit::Visitor; +use syntax_ast_map as ast_map; use util::nodemap::NodeMap; use util::ppaux::Repr; diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index d8beeb6a5503b..d11b0a6bd4222 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -33,7 +33,6 @@ #![feature(unicode)] #![feature(str_char)] -extern crate arena; extern crate fmt_macros; extern crate serialize; extern crate term; @@ -79,7 +78,6 @@ pub mod syntax { pub mod abi; pub mod ast; -pub mod ast_map; pub mod ast_util; pub mod attr; pub mod codemap; diff --git a/src/libsyntax/ast_map/blocks.rs b/src/libsyntax_ast_map/blocks.rs similarity index 92% rename from src/libsyntax/ast_map/blocks.rs rename to src/libsyntax_ast_map/blocks.rs index 1505d1e91b820..76d49a7e48bbf 100644 --- a/src/libsyntax/ast_map/blocks.rs +++ b/src/libsyntax_ast_map/blocks.rs @@ -23,13 +23,13 @@ pub use self::Code::*; -use abi; -use ast::{Block, FnDecl, NodeId}; -use ast; -use ast_map::Node; -use ast_map; -use codemap::Span; -use visit; +use syntax::abi; +use syntax::ast::{Block, FnDecl, NodeId}; +use syntax::ast; +use syntax::codemap::Span; +use syntax::visit; + +use super::Node; /// An FnLikeNode is a Node that is like a fn, in that it has a decl /// and a body (as well as a NodeId, a span, etc). @@ -41,7 +41,7 @@ use visit; /// /// To construct one, use the `Code::from_node` function. #[derive(Copy, Clone)] -pub struct FnLikeNode<'a> { node: ast_map::Node<'a> } +pub struct FnLikeNode<'a> { node: Node<'a> } /// MaybeFnLike wraps a method that indicates if an object /// corresponds to some FnLikeNode. @@ -98,15 +98,15 @@ impl<'a> Code<'a> { pub fn from_node(node: Node) -> Option { fn new(node: Node) -> FnLikeNode { FnLikeNode { node: node } } match node { - ast_map::NodeItem(item) if item.is_fn_like() => + Node::NodeItem(item) if item.is_fn_like() => Some(FnLikeCode(new(node))), - ast_map::NodeTraitItem(tm) if tm.is_fn_like() => + Node::NodeTraitItem(tm) if tm.is_fn_like() => Some(FnLikeCode(new(node))), - ast_map::NodeImplItem(_) => + Node::NodeImplItem(_) => Some(FnLikeCode(new(node))), - ast_map::NodeExpr(e) if e.is_fn_like() => + Node::NodeExpr(e) if e.is_fn_like() => Some(FnLikeCode(new(node))), - ast_map::NodeBlock(block) => + Node::NodeBlock(block) => Some(BlockCode(block)), _ => None, @@ -203,7 +203,7 @@ impl<'a> FnLikeNode<'a> { C: FnOnce(ClosureParts<'a>) -> A, { match self.node { - ast_map::NodeItem(i) => match i.node { + Node::NodeItem(i) => match i.node { ast::ItemFn(ref decl, unsafety, abi, ref generics, ref block) => item_fn(ItemFnParts{ ident: i.ident, decl: &**decl, unsafety: unsafety, body: &**block, @@ -211,13 +211,13 @@ impl<'a> FnLikeNode<'a> { }), _ => panic!("item FnLikeNode that is not fn-like"), }, - ast_map::NodeTraitItem(ti) => match ti.node { + Node::NodeTraitItem(ti) => match ti.node { ast::MethodTraitItem(ref sig, Some(ref body)) => { method(ti.id, ti.ident, sig, None, body, ti.span) } _ => panic!("trait method FnLikeNode that is not fn-like"), }, - ast_map::NodeImplItem(ii) => { + Node::NodeImplItem(ii) => { match ii.node { ast::MethodImplItem(ref sig, ref body) => { method(ii.id, ii.ident, sig, Some(ii.vis), body, ii.span) @@ -228,7 +228,7 @@ impl<'a> FnLikeNode<'a> { } } } - ast_map::NodeExpr(e) => match e.node { + Node::NodeExpr(e) => match e.node { ast::ExprClosure(_, ref decl, ref block) => closure(ClosureParts::new(&**decl, &**block, e.id, e.span)), _ => panic!("expr FnLikeNode that is not fn-like"), diff --git a/src/libsyntax/ast_map/mod.rs b/src/libsyntax_ast_map/lib.rs similarity index 97% rename from src/libsyntax/ast_map/mod.rs rename to src/libsyntax_ast_map/lib.rs index 2a9a609ecd1e9..985432c7e29a9 100644 --- a/src/libsyntax/ast_map/mod.rs +++ b/src/libsyntax_ast_map/lib.rs @@ -8,18 +8,35 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +#![crate_name = "syntax_ast_map"] +#![unstable(feature = "rustc_private")] +#![staged_api] +#![crate_type = "dylib"] +#![crate_type = "rlib"] +#![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png", + html_favicon_url = "http://www.rust-lang.org/favicon.ico", + html_root_url = "http://doc.rust-lang.org/nightly/")] + +#![feature(core)] +#![feature(rustc_private)] +#![feature(staged_api)] + +extern crate arena; +extern crate syntax; +#[macro_use] extern crate log; + pub use self::Node::*; pub use self::PathElem::*; use self::MapEntry::*; -use abi; -use ast::*; -use ast_util; -use codemap::{DUMMY_SP, Span, Spanned}; -use fold::Folder; -use parse::token; -use print::pprust; -use visit::{self, Visitor}; +use syntax::abi; +use syntax::ast::*; +use syntax::ast_util; +use syntax::codemap::{DUMMY_SP, Span, Spanned}; +use syntax::fold::Folder; +use syntax::parse::token; +use syntax::print::pprust; +use syntax::visit::{self, Visitor}; use arena::TypedArena; use std::cell::RefCell;