From 19f1a15d624988737f8b1f5bf7b419d7f5c75555 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Thu, 30 Apr 2015 10:05:09 -0700 Subject: [PATCH] syntax: Move ast_map into it's own crate This lets us remove the arena dependency from libsyntax, which is unstable. --- mk/crates.mk | 27 ++++++++------- src/librustc/lib.rs | 3 +- src/librustc/metadata/csearch.rs | 2 +- src/librustc/metadata/decoder.rs | 2 +- src/librustc/metadata/encoder.rs | 5 +-- src/librustc/middle/astencode.rs | 4 +-- src/librustc/middle/cfg/graphviz.rs | 2 +- src/librustc/middle/check_static_recursion.rs | 3 +- src/librustc/middle/const_eval.rs | 3 +- src/librustc/middle/dead.rs | 3 +- src/librustc/middle/entry.rs | 2 +- src/librustc/middle/infer/error_reporting.rs | 2 +- src/librustc/middle/intrinsicck.rs | 2 +- src/librustc/middle/mem_categorization.rs | 2 +- src/librustc/middle/reachable.rs | 2 +- src/librustc/middle/region.rs | 2 +- src/librustc/middle/ty.rs | 3 +- src/librustc/util/ppaux.rs | 2 +- .../ast_map => librustc_ast_map}/blocks.rs | 34 +++++++++---------- .../mod.rs => librustc_ast_map/lib.rs} | 33 +++++++++++++----- src/librustc_borrowck/borrowck/mod.rs | 8 ++--- src/librustc_borrowck/lib.rs | 1 + src/librustc_driver/driver.rs | 2 +- src/librustc_driver/lib.rs | 1 + src/librustc_driver/pretty.rs | 3 +- src/librustc_lint/builtin.rs | 3 +- src/librustc_lint/lib.rs | 1 + src/librustc_privacy/lib.rs | 4 ++- src/librustc_resolve/lib.rs | 3 +- src/librustc_trans/back/link.rs | 2 +- src/librustc_trans/lib.rs | 3 +- src/librustc_trans/save/mod.rs | 2 +- src/librustc_trans/trans/base.rs | 3 +- src/librustc_trans/trans/callee.rs | 2 +- src/librustc_trans/trans/common.rs | 2 +- .../trans/debuginfo/metadata.rs | 3 +- src/librustc_trans/trans/debuginfo/mod.rs | 3 +- .../trans/debuginfo/namespace.rs | 3 +- src/librustc_trans/trans/foreign.rs | 4 +-- src/librustc_trans/trans/meth.rs | 3 +- src/librustc_trans/trans/monomorphize.rs | 2 +- src/librustc_typeck/coherence/mod.rs | 4 +-- src/librustc_typeck/collect.rs | 2 +- src/librustc_typeck/lib.rs | 4 ++- src/librustc_typeck/variance.rs | 2 +- src/librustdoc/core.rs | 5 +-- src/librustdoc/lib.rs | 7 ++-- src/librustdoc/visit_ast.rs | 2 +- src/libsyntax/lib.rs | 2 -- 49 files changed, 133 insertions(+), 91 deletions(-) rename src/{libsyntax/ast_map => librustc_ast_map}/blocks.rs (92%) rename src/{libsyntax/ast_map/mod.rs => librustc_ast_map/lib.rs} (97%) diff --git a/mk/crates.mk b/mk/crates.mk index 367c25a8a6d49..298df4923d792 100644 --- a/mk/crates.mk +++ b/mk/crates.mk @@ -55,8 +55,9 @@ TARGET_CRATES := libc std flate arena term \ rustc_unicode rustc_bitflags 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 + rustc_data_structures rustc_ast_map +SYNTAX_CRATES := syntax +HOST_CRATES := $(SYNTAX_CRATES) $(RUSTC_CRATES) rustdoc fmt_macros CRATES := $(TARGET_CRATES) $(HOST_CRATES) TOOLS := compiletest rustdoc rustc rustbook @@ -68,24 +69,26 @@ 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_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_trans rustc_privacy rustc_lint rustc_ast_map 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 + log syntax rustc_ast_map serialize rustc_llvm +DEPS_rustc_typeck := rustc syntax rustc_ast_map +DEPS_rustc_borrowck := rustc log graphviz syntax rustc_ast_map +DEPS_rustc_resolve := rustc log syntax rustc_ast_map +DEPS_rustc_privacy := rustc log syntax rustc_ast_map +DEPS_rustc_lint := rustc log syntax rustc_ast_map DEPS_rustc := syntax flate arena serialize getopts rbml \ - log graphviz rustc_llvm rustc_back rustc_data_structures + log graphviz rustc_llvm rustc_back rustc_data_structures \ + rustc_ast_map 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_rustc_ast_map := std arena syntax +DEPS_rustdoc := rustc rustc_driver native:hoedown syntax rustc_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 5bd3759a6e04e..8719ffbf227e7 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -52,9 +52,10 @@ extern crate fmt_macros; extern crate getopts; extern crate graphviz; extern crate libc; -extern crate rustc_llvm; +extern crate rustc_ast_map; extern crate rustc_back; extern crate rustc_data_structures; +extern crate rustc_llvm; extern crate serialize; extern crate rbml; extern crate collections; diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index 7132ac4895aa1..ca84caef1dbf3 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -19,9 +19,9 @@ use middle::ty; use rbml; use rbml::reader; +use rustc_ast_map as ast_map; use std::rc::Rc; use syntax::ast; -use syntax::ast_map; use syntax::attr; use syntax::attr::AttrMetaMethods; use syntax::diagnostic::expect; diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 00fc42341c389..67c4ea9e6f6ed 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -43,8 +43,8 @@ use std::str; use rbml::reader; use rbml; +use rustc_ast_map as ast_map; use serialize::Decodable; -use syntax::ast_map; use syntax::attr; use syntax::parse::token::{IdentInterner, special_idents}; use syntax::parse::token; diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 90dd452e06b5b..be2c41ad91196 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -32,9 +32,11 @@ use std::cell::RefCell; use std::hash::{Hash, Hasher, SipHasher}; use std::io::prelude::*; use std::io::{Cursor, SeekFrom}; +use rbml::writer::Encoder; +use rustc_ast_map as ast_map; +use rustc_ast_map::{LinkedPath, PathElem, PathElems}; 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,7 +49,6 @@ use syntax::ptr::P; use syntax::visit::Visitor; use syntax::visit; use syntax; -use rbml::writer::Encoder; /// A borrowed version of `ast::InlinedItem`. pub enum InlinedItemRef<'a> { diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index 4bfc4c5b850fd..b41be3cbdd86b 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -31,12 +31,11 @@ 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::{self, ast, ast_util, codemap, fold}; use syntax::codemap::Span; use syntax::fold::Folder; use syntax::parse::token; use syntax::ptr::P; -use syntax; use std::cell::Cell; use std::io::SeekFrom; @@ -46,6 +45,7 @@ use std::fmt::Debug; use rbml::reader; use rbml::writer::Encoder; use rbml; +use rustc_ast_map as ast_map; use serialize; use serialize::{Decodable, Decoder, DecoderHelpers, Encodable}; use serialize::EncoderHelpers; diff --git a/src/librustc/middle/cfg/graphviz.rs b/src/librustc/middle/cfg/graphviz.rs index 3a6966ab11290..98e68d551a98c 100644 --- a/src/librustc/middle/cfg/graphviz.rs +++ b/src/librustc/middle/cfg/graphviz.rs @@ -16,8 +16,8 @@ use std::borrow::IntoCow; // For clarity, rename the graphviz crate locally to dot. use graphviz as dot; +use rustc_ast_map as ast_map; use syntax::ast; -use syntax::ast_map; use middle::cfg; diff --git a/src/librustc/middle/check_static_recursion.rs b/src/librustc/middle/check_static_recursion.rs index a521c4531c9a7..1baf340abcdbd 100644 --- a/src/librustc/middle/check_static_recursion.rs +++ b/src/librustc/middle/check_static_recursion.rs @@ -14,8 +14,9 @@ use session::Session; use middle::def::{DefStatic, DefConst, DefAssociatedConst, DefMap}; +use rustc_ast_map as ast_map; use syntax::ast; -use syntax::{ast_util, ast_map}; +use syntax::ast_util; use syntax::codemap::Span; use syntax::visit::Visitor; use syntax::visit; diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index 091092e3b6079..411b70fb72f3f 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -23,12 +23,13 @@ use middle::astconv_util::ast_ty_to_prim_ty; use util::num::ToPrimitive; use util::ppaux::Repr; +use rustc_ast_map as ast_map; use syntax::ast::{self, Expr}; 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 std::borrow::{Cow, IntoCow}; use std::num::wrapping::OverflowingOps; diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index 1aa2ca9115d2f..c5bace224aae1 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -17,7 +17,8 @@ use lint; use util::nodemap::NodeSet; use std::collections::HashSet; -use syntax::{ast, ast_map, codemap}; +use rustc_ast_map as ast_map; +use syntax::{ast, codemap}; use syntax::ast_util::{local_def, is_local}; use syntax::attr::{self, AttrMetaMethods}; use syntax::visit::{self, Visitor}; diff --git a/src/librustc/middle/entry.rs b/src/librustc/middle/entry.rs index 0ce9db1c80f3f..c27175f9be103 100644 --- a/src/librustc/middle/entry.rs +++ b/src/librustc/middle/entry.rs @@ -9,9 +9,9 @@ // except according to those terms. +use rustc_ast_map as ast_map; 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; diff --git a/src/librustc/middle/infer/error_reporting.rs b/src/librustc/middle/infer/error_reporting.rs index 8aca64484bf45..a0ebef091564b 100644 --- a/src/librustc/middle/infer/error_reporting.rs +++ b/src/librustc/middle/infer/error_reporting.rs @@ -77,11 +77,11 @@ use middle::infer; use middle::subst; use middle::ty::{self, Ty}; use middle::ty::{Region, ReFree}; +use rustc_ast_map as ast_map; use std::cell::{Cell, RefCell}; use std::char::from_u32; 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; diff --git a/src/librustc/middle/intrinsicck.rs b/src/librustc/middle/intrinsicck.rs index 2a4c25345447f..2968c536a2a9c 100644 --- a/src/librustc/middle/intrinsicck.rs +++ b/src/librustc/middle/intrinsicck.rs @@ -15,10 +15,10 @@ use middle::ty::{TransmuteRestriction, ctxt, ty_bare_fn}; use middle::ty::{self, Ty}; use util::ppaux::Repr; +use rustc_ast_map::NodeForeignItem; 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; diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index c4ab89e3b4da0..116410d5ba532 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -80,9 +80,9 @@ use middle::ty::{self, Ty}; use util::nodemap::NodeMap; use util::ppaux::{Repr, UserString}; +use rustc_ast_map as ast_map; use syntax::ast::{MutImmutable, MutMutable}; use syntax::ast; -use syntax::ast_map; use syntax::codemap::Span; use syntax::print::pprust; use syntax::parse::token; diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index b532dc88df4cb..c478dc88c1629 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -21,10 +21,10 @@ use middle::privacy; use session::config; use util::nodemap::NodeSet; +use rustc_ast_map as ast_map; 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; diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index 2c510b5f1d3b5..cccd5483699ce 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -20,12 +20,12 @@ use session::Session; use middle::ty::{self, Ty}; use util::nodemap::{FnvHashMap, FnvHashSet, NodeMap}; +use rustc_ast_map as ast_map; use std::cell::RefCell; 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}; diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 41bd52dc25c21..9dfa25a345ef4 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -79,6 +79,8 @@ use std::ops; use std::rc::Rc; use std::vec::IntoIter; use collections::enum_set::{EnumSet, CLike}; +use rustc_ast_map as ast_map; +use rustc_ast_map::LinkedPath; use std::collections::{HashMap, HashSet}; use syntax::abi; use syntax::ast::{CrateNum, DefId, ItemImpl, ItemTrait, LOCAL_CRATE}; @@ -91,7 +93,6 @@ 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}; pub type Disr = u64; diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index aa89c1943a2e3..7e853f2e90c9f 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -26,12 +26,12 @@ use middle::ty::{ty_uniq, ty_trait, ty_int, ty_uint, ty_infer}; use middle::ty; use middle::ty_fold::TypeFoldable; +use rustc_ast_map as ast_map; use std::collections::HashMap; 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; diff --git a/src/libsyntax/ast_map/blocks.rs b/src/librustc_ast_map/blocks.rs similarity index 92% rename from src/libsyntax/ast_map/blocks.rs rename to src/librustc_ast_map/blocks.rs index 36a7f3a93817c..577c4a42f49b7 100644 --- a/src/libsyntax/ast_map/blocks.rs +++ b/src/librustc_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) @@ -227,7 +227,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/librustc_ast_map/lib.rs similarity index 97% rename from src/libsyntax/ast_map/mod.rs rename to src/librustc_ast_map/lib.rs index 795391d400914..dc16509bc5ffe 100644 --- a/src/libsyntax/ast_map/mod.rs +++ b/src/librustc_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 = "rustc_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; diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index 27adf5bf21b63..c738c4383efaa 100644 --- a/src/librustc_borrowck/borrowck/mod.rs +++ b/src/librustc_borrowck/borrowck/mod.rs @@ -21,22 +21,22 @@ pub use self::MovedValueUseKind::*; use self::InteriorKind::*; use rustc::middle::cfg; -use rustc::middle::dataflow::DataFlowContext; use rustc::middle::dataflow::BitwiseOperator; +use rustc::middle::dataflow::DataFlowContext; use rustc::middle::dataflow::DataFlowOperator; use rustc::middle::dataflow::KillFrom; use rustc::middle::expr_use_visitor as euv; -use rustc::middle::mem_categorization as mc; use rustc::middle::free_region::FreeRegionMap; +use rustc::middle::mem_categorization as mc; use rustc::middle::region; use rustc::middle::ty::{self, Ty}; use rustc::util::ppaux::{note_and_explain_region, Repr, UserString}; +use rustc_ast_map as ast_map; +use rustc_ast_map::blocks::{FnLikeNode, FnParts}; use std::mem; 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; diff --git a/src/librustc_borrowck/lib.rs b/src/librustc_borrowck/lib.rs index 50dc08e299a82..77199e77e35a5 100644 --- a/src/librustc_borrowck/lib.rs +++ b/src/librustc_borrowck/lib.rs @@ -34,6 +34,7 @@ // refers to the borrowck-specific graphviz adapter traits. extern crate graphviz as dot; extern crate rustc; +extern crate rustc_ast_map; pub use borrowck::check_crate; pub use borrowck::build_borrowck_dataflow_data_for_fn; diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 154e0a1f64460..02cfd5adb581f 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -31,13 +31,13 @@ use super::Compilation; use serialize::json; +use rustc_ast_map as ast_map; use std::env; use std::ffi::OsString; 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; diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index 8dff0f1d3f41a..dded03211df41 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -41,6 +41,7 @@ extern crate getopts; extern crate graphviz; extern crate libc; extern crate rustc; +extern crate rustc_ast_map; extern crate rustc_back; extern crate rustc_borrowck; extern crate rustc_lint; diff --git a/src/librustc_driver/pretty.rs b/src/librustc_driver/pretty.rs index b8032bda8d070..dc7126f41a894 100644 --- a/src/librustc_driver/pretty.rs +++ b/src/librustc_driver/pretty.rs @@ -25,12 +25,13 @@ use rustc::middle::cfg::graphviz::LabelledCFG; use rustc::session::Session; use rustc::session::config::Input; use rustc::util::ppaux; +use rustc_ast_map as ast_map; +use rustc_ast_map::{blocks, NodePrinter}; use rustc_borrowck as borrowck; 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}; diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index 19e71d6e40d5a..16335e6d2209b 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -44,7 +44,8 @@ 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 rustc_ast_map as 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}; diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs index 970f9c634a2ca..f3fa9a05f4cc2 100644 --- a/src/librustc_lint/lib.rs +++ b/src/librustc_lint/lib.rs @@ -44,6 +44,7 @@ extern crate syntax; #[macro_use] extern crate rustc; +extern crate rustc_ast_map; #[macro_use] extern crate log; diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index 128e29ee76e7d..b835b5a358716 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -27,6 +27,7 @@ #[macro_use] extern crate syntax; extern crate rustc; +extern crate rustc_ast_map; use self::PrivacyResult::*; use self::FieldName::*; @@ -46,7 +47,8 @@ use rustc::middle::ty::MethodTraitObject; use rustc::middle::ty::{self, Ty}; use rustc::util::nodemap::{NodeMap, NodeSet}; -use syntax::{ast, ast_map}; +use rustc_ast_map as ast_map; +use syntax::ast; use syntax::ast_util::{is_local, local_def}; use syntax::codemap::Span; use syntax::parse::token; diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 7abe5a84c5fff..319f50a4dc90c 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -31,6 +31,7 @@ #[macro_use] #[no_link] extern crate rustc_bitflags; extern crate rustc; +extern crate rustc_ast_map; use self::PatternBindingMode::*; use self::Namespace::*; @@ -61,6 +62,7 @@ use rustc::middle::subst::{ParamSpace, FnSpace, TypeSpace}; use rustc::middle::ty::{Freevar, FreevarMap, TraitMap, GlobMap}; use rustc::util::nodemap::{NodeMap, NodeSet, DefIdSet, FnvHashMap}; use rustc::util::lev_distance::lev_distance; +use rustc_ast_map as ast_map; use syntax::ast::{Arm, BindByRef, BindByValue, BindingMode, Block}; use syntax::ast::{ConstImplItem, Crate, CrateNum}; @@ -80,7 +82,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; diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index 92c9549b37727..d84b4c3f5b991 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -36,9 +36,9 @@ use std::path::{self, Path, PathBuf}; use std::process::Command; use std::str; use flate; +use rustc_ast_map::{PathElem, PathElems, PathName}; 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; diff --git a/src/librustc_trans/lib.rs b/src/librustc_trans/lib.rs index 3e2db80a9c556..35780a6d615a3 100644 --- a/src/librustc_trans/lib.rs +++ b/src/librustc_trans/lib.rs @@ -48,9 +48,10 @@ extern crate getopts; extern crate graphviz; extern crate libc; extern crate rustc; +extern crate rustc_ast_map; extern crate rustc_back; -extern crate serialize; extern crate rustc_llvm as llvm; +extern crate serialize; #[macro_use] extern crate log; #[macro_use] extern crate syntax; diff --git a/src/librustc_trans/save/mod.rs b/src/librustc_trans/save/mod.rs index d80086da20315..bbd8100f333ba 100644 --- a/src/librustc_trans/save/mod.rs +++ b/src/librustc_trans/save/mod.rs @@ -37,9 +37,9 @@ use std::env; use std::fs::{self, File}; use std::path::{Path, PathBuf}; +use rustc_ast_map::NodeItem; 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}; diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 4879975dde695..06c0ad120e709 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -85,6 +85,7 @@ use util::nodemap::NodeMap; use arena::TypedArena; use libc::c_uint; +use rustc_ast_map as ast_map; use std::ffi::{CStr, CString}; use std::cell::{Cell, RefCell}; use std::collections::HashSet; @@ -99,7 +100,7 @@ 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}; 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 e87c058faf9c1..1464ac453d62e 100644 --- a/src/librustc_trans/trans/callee.rs +++ b/src/librustc_trans/trans/callee.rs @@ -56,9 +56,9 @@ use middle::ty::MethodCall; use util::ppaux::Repr; use util::ppaux::ty_to_string; +use rustc_ast_map as ast_map; use syntax::abi as synabi; use syntax::ast; -use syntax::ast_map; use syntax::ptr::P; #[derive(Copy, Clone)] diff --git a/src/librustc_trans/trans/common.rs b/src/librustc_trans/trans/common.rs index 2ba963a42efbe..5431d0ae49764 100644 --- a/src/librustc_trans/trans/common.rs +++ b/src/librustc_trans/trans/common.rs @@ -45,12 +45,12 @@ use util::nodemap::{FnvHashMap, NodeMap}; use arena::TypedArena; use libc::{c_uint, c_char}; +use rustc_ast_map::{PathElem, PathName}; use std::ffi::CString; 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; diff --git a/src/librustc_trans/trans/debuginfo/metadata.rs b/src/librustc_trans/trans/debuginfo/metadata.rs index 9ff69e7f9dd29..870db369ac6ef 100644 --- a/src/librustc_trans/trans/debuginfo/metadata.rs +++ b/src/librustc_trans/trans/debuginfo/metadata.rs @@ -37,13 +37,14 @@ use util::ppaux; use util::common::path2cstr; use libc::{c_uint, c_longlong}; +use rustc_ast_map as ast_map; use std::ffi::CString; use std::path::Path; use std::ptr; use std::rc::Rc; use syntax::util::interner::Interner; use syntax::codemap::Span; -use syntax::{ast, codemap, ast_util, ast_map}; +use syntax::{ast, codemap, ast_util}; use syntax::parse::token::{self, special_idents}; diff --git a/src/librustc_trans/trans/debuginfo/mod.rs b/src/librustc_trans/trans/debuginfo/mod.rs index e4312b669ad98..f4ac9e0d98524 100644 --- a/src/librustc_trans/trans/debuginfo/mod.rs +++ b/src/librustc_trans/trans/debuginfo/mod.rs @@ -34,12 +34,13 @@ use session::config::{self, FullDebugInfo, LimitedDebugInfo, NoDebugInfo}; use util::nodemap::{DefIdMap, NodeMap, FnvHashMap, FnvHashSet}; use libc::c_uint; +use rustc_ast_map as ast_map; use std::cell::{Cell, RefCell}; use std::ffi::CString; use std::ptr; use std::rc::Rc; use syntax::codemap::{Span, Pos}; -use syntax::{ast, codemap, ast_util, ast_map}; +use syntax::{ast, codemap, ast_util}; use syntax::parse::token::{self, special_idents}; pub mod gdb; diff --git a/src/librustc_trans/trans/debuginfo/namespace.rs b/src/librustc_trans/trans/debuginfo/namespace.rs index 0aa0408c0ef33..d071a580bbb96 100644 --- a/src/librustc_trans/trans/debuginfo/namespace.rs +++ b/src/librustc_trans/trans/debuginfo/namespace.rs @@ -17,10 +17,11 @@ use llvm::debuginfo::DIScope; use trans::common::CrateContext; use middle::ty::{self, ClosureTyper}; +use rustc_ast_map as ast_map; use std::ffi::CString; use std::ptr; use std::rc::{Rc, Weak}; -use syntax::{ast, ast_map}; +use syntax::ast; use syntax::parse::token; pub struct NamespaceTreeNode { diff --git a/src/librustc_trans/trans/foreign.rs b/src/librustc_trans/trans/foreign.rs index d760b2c52ca1b..783c00e5dde2b 100644 --- a/src/librustc_trans/trans/foreign.rs +++ b/src/librustc_trans/trans/foreign.rs @@ -31,13 +31,13 @@ use middle::subst::Substs; use std::cmp; use libc::c_uint; +use rustc_ast_map as ast_map; use syntax::abi::{Cdecl, Aapcs, C, Win64, Abi}; 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::print::pprust; use util::ppaux::Repr; diff --git a/src/librustc_trans/trans/meth.rs b/src/librustc_trans/trans/meth.rs index 7039968b029ac..227b1d156edb6 100644 --- a/src/librustc_trans/trans/meth.rs +++ b/src/librustc_trans/trans/meth.rs @@ -40,9 +40,10 @@ use middle::ty::{self, Ty}; use middle::ty::MethodCall; use util::ppaux::Repr; +use rustc_ast_map as ast_map; 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; diff --git a/src/librustc_trans/trans/monomorphize.rs b/src/librustc_trans/trans/monomorphize.rs index 03fdd0c45c16a..c690915f10c6d 100644 --- a/src/librustc_trans/trans/monomorphize.rs +++ b/src/librustc_trans/trans/monomorphize.rs @@ -27,9 +27,9 @@ use trans::foreign; use middle::ty::{self, HasProjectionTypes, Ty}; use util::ppaux::Repr; +use rustc_ast_map as ast_map; use syntax::abi; use syntax::ast; -use syntax::ast_map; use syntax::ast_util::local_def; use syntax::attr; use syntax::codemap::DUMMY_SP; diff --git a/src/librustc_typeck/coherence/mod.rs b/src/librustc_typeck/coherence/mod.rs index 05b74a5cc226b..7ce0a479261a6 100644 --- a/src/librustc_typeck/coherence/mod.rs +++ b/src/librustc_typeck/coherence/mod.rs @@ -33,6 +33,8 @@ use middle::ty; use CrateCtxt; use middle::infer::InferCtxt; use middle::infer::new_infer_ctxt; +use rustc_ast_map as ast_map; +use rustc_ast_map::NodeItem; use std::collections::HashSet; use std::cell::RefCell; use std::rc::Rc; @@ -40,8 +42,6 @@ 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; diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 014991f7ea560..c0ea641e5876c 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -87,9 +87,9 @@ use std::cell::{Cell, RefCell}; use std::collections::HashSet; use std::rc::Rc; +use rustc_ast_map as ast_map; 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; diff --git a/src/librustc_typeck/lib.rs b/src/librustc_typeck/lib.rs index e50693ea804b6..f20b1a1bdac71 100644 --- a/src/librustc_typeck/lib.rs +++ b/src/librustc_typeck/lib.rs @@ -90,6 +90,7 @@ This API is completely unstable and subject to change. extern crate arena; extern crate fmt_macros; extern crate rustc; +extern crate rustc_ast_map; pub use rustc::lint; pub use rustc::metadata; @@ -108,8 +109,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 rustc_ast_map as ast_map; use std::cell::RefCell; diff --git a/src/librustc_typeck/variance.rs b/src/librustc_typeck/variance.rs index 9e8c23734e3c8..066b3beb93e3e 100644 --- a/src/librustc_typeck/variance.rs +++ b/src/librustc_typeck/variance.rs @@ -270,10 +270,10 @@ use middle::resolve_lifetime as rl; use middle::subst; use middle::subst::{ParamSpace, FnSpace, TypeSpace, SelfSpace, VecPerParamSpace}; use middle::ty::{self, Ty}; +use rustc_ast_map as ast_map; 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; diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 1b74123c4adcd..39621bb090432 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -15,10 +15,11 @@ use rustc::session::{self, config}; use rustc::session::config::UnstableFeatures; use rustc::middle::{privacy, ty}; use rustc::lint; -use rustc_trans::back::link; +use rustc_ast_map as ast_map; use rustc_resolve as resolve; +use rustc_trans::back::link; -use syntax::{ast, ast_map, codemap, diagnostic}; +use syntax::{ast, codemap, diagnostic}; use std::cell::{RefCell, Cell}; use std::collections::{HashMap, HashSet}; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 9c393d6f89737..0cd41ff0e2c6c 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -39,11 +39,12 @@ extern crate arena; extern crate getopts; extern crate libc; extern crate rustc; -extern crate rustc_trans; +extern crate rustc_ast_map; +extern crate rustc_back; extern crate rustc_driver; -extern crate rustc_resolve; extern crate rustc_lint; -extern crate rustc_back; +extern crate rustc_resolve; +extern crate rustc_trans; extern crate serialize; extern crate syntax; extern crate test as testing; diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index 4ad693578ccdc..e36816da99d81 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -17,12 +17,12 @@ use std::mem; use syntax::abi; use syntax::ast; use syntax::ast_util; -use syntax::ast_map; use syntax::attr; use syntax::attr::AttrMetaMethods; use syntax::codemap::Span; use rustc::middle::stability; +use rustc_ast_map as ast_map; use core; use doctree::*; diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index 275400009f5aa..643ba574899be 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -34,7 +34,6 @@ #![feature(str_char)] #![feature(unicode)] -extern crate arena; extern crate fmt_macros; extern crate serialize; extern crate term; @@ -81,7 +80,6 @@ pub mod syntax { pub mod abi; pub mod ast; -pub mod ast_map; pub mod ast_util; pub mod attr; pub mod codemap;