Skip to content

Commit 19f1a15

Browse files
committed
syntax: Move ast_map into it's own crate
This lets us remove the arena dependency from libsyntax, which is unstable.
1 parent 1320c29 commit 19f1a15

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+133
-91
lines changed

mk/crates.mk

+15-12
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ TARGET_CRATES := libc std flate arena term \
5555
rustc_unicode rustc_bitflags
5656
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5757
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
58-
rustc_data_structures
59-
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
58+
rustc_data_structures rustc_ast_map
59+
SYNTAX_CRATES := syntax
60+
HOST_CRATES := $(SYNTAX_CRATES) $(RUSTC_CRATES) rustdoc fmt_macros
6061
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
6162
TOOLS := compiletest rustdoc rustc rustbook
6263

@@ -68,24 +69,26 @@ DEPS_std := core libc rand alloc collections rustc_unicode \
6869
native:rust_builtin native:backtrace native:rustrt_native \
6970
rustc_bitflags
7071
DEPS_graphviz := std
71-
DEPS_syntax := std term serialize log fmt_macros arena libc
72+
DEPS_syntax := std term serialize log fmt_macros libc
7273
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
7374
rustc_typeck rustc_resolve log syntax serialize rustc_llvm \
74-
rustc_trans rustc_privacy rustc_lint
75+
rustc_trans rustc_privacy rustc_lint rustc_ast_map
7576

7677
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
77-
log syntax serialize rustc_llvm
78-
DEPS_rustc_typeck := rustc syntax
79-
DEPS_rustc_borrowck := rustc log graphviz syntax
80-
DEPS_rustc_resolve := rustc log syntax
81-
DEPS_rustc_privacy := rustc log syntax
82-
DEPS_rustc_lint := rustc log syntax
78+
log syntax rustc_ast_map serialize rustc_llvm
79+
DEPS_rustc_typeck := rustc syntax rustc_ast_map
80+
DEPS_rustc_borrowck := rustc log graphviz syntax rustc_ast_map
81+
DEPS_rustc_resolve := rustc log syntax rustc_ast_map
82+
DEPS_rustc_privacy := rustc log syntax rustc_ast_map
83+
DEPS_rustc_lint := rustc log syntax rustc_ast_map
8384
DEPS_rustc := syntax flate arena serialize getopts rbml \
84-
log graphviz rustc_llvm rustc_back rustc_data_structures
85+
log graphviz rustc_llvm rustc_back rustc_data_structures \
86+
rustc_ast_map
8587
DEPS_rustc_llvm := native:rustllvm libc std
8688
DEPS_rustc_back := std syntax rustc_llvm flate log libc
8789
DEPS_rustc_data_structures := std log serialize
88-
DEPS_rustdoc := rustc rustc_driver native:hoedown serialize getopts \
90+
DEPS_rustc_ast_map := std arena syntax
91+
DEPS_rustdoc := rustc rustc_driver native:hoedown syntax rustc_ast_map serialize getopts \
8992
test rustc_lint
9093
DEPS_rustc_bitflags := core
9194
DEPS_flate := std native:miniz

src/librustc/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ extern crate fmt_macros;
5252
extern crate getopts;
5353
extern crate graphviz;
5454
extern crate libc;
55-
extern crate rustc_llvm;
55+
extern crate rustc_ast_map;
5656
extern crate rustc_back;
5757
extern crate rustc_data_structures;
58+
extern crate rustc_llvm;
5859
extern crate serialize;
5960
extern crate rbml;
6061
extern crate collections;

src/librustc/metadata/csearch.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ use middle::ty;
1919

2020
use rbml;
2121
use rbml::reader;
22+
use rustc_ast_map as ast_map;
2223
use std::rc::Rc;
2324
use syntax::ast;
24-
use syntax::ast_map;
2525
use syntax::attr;
2626
use syntax::attr::AttrMetaMethods;
2727
use syntax::diagnostic::expect;

src/librustc/metadata/decoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ use std::str;
4343

4444
use rbml::reader;
4545
use rbml;
46+
use rustc_ast_map as ast_map;
4647
use serialize::Decodable;
47-
use syntax::ast_map;
4848
use syntax::attr;
4949
use syntax::parse::token::{IdentInterner, special_idents};
5050
use syntax::parse::token;

src/librustc/metadata/encoder.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ use std::cell::RefCell;
3232
use std::hash::{Hash, Hasher, SipHasher};
3333
use std::io::prelude::*;
3434
use std::io::{Cursor, SeekFrom};
35+
use rbml::writer::Encoder;
36+
use rustc_ast_map as ast_map;
37+
use rustc_ast_map::{LinkedPath, PathElem, PathElems};
3538
use syntax::abi;
3639
use syntax::ast::{self, DefId, NodeId};
37-
use syntax::ast_map::{self, LinkedPath, PathElem, PathElems};
3840
use syntax::ast_util::*;
3941
use syntax::ast_util;
4042
use syntax::attr;
@@ -47,7 +49,6 @@ use syntax::ptr::P;
4749
use syntax::visit::Visitor;
4850
use syntax::visit;
4951
use syntax;
50-
use rbml::writer::Encoder;
5152

5253
/// A borrowed version of `ast::InlinedItem`.
5354
pub enum InlinedItemRef<'a> {

src/librustc/middle/astencode.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,11 @@ use middle::subst::VecPerParamSpace;
3131
use middle::ty::{self, Ty, MethodCall, MethodCallee, MethodOrigin};
3232
use util::ppaux::ty_to_string;
3333

34-
use syntax::{ast, ast_map, ast_util, codemap, fold};
34+
use syntax::{self, ast, ast_util, codemap, fold};
3535
use syntax::codemap::Span;
3636
use syntax::fold::Folder;
3737
use syntax::parse::token;
3838
use syntax::ptr::P;
39-
use syntax;
4039

4140
use std::cell::Cell;
4241
use std::io::SeekFrom;
@@ -46,6 +45,7 @@ use std::fmt::Debug;
4645
use rbml::reader;
4746
use rbml::writer::Encoder;
4847
use rbml;
48+
use rustc_ast_map as ast_map;
4949
use serialize;
5050
use serialize::{Decodable, Decoder, DecoderHelpers, Encodable};
5151
use serialize::EncoderHelpers;

src/librustc/middle/cfg/graphviz.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ use std::borrow::IntoCow;
1616
// For clarity, rename the graphviz crate locally to dot.
1717
use graphviz as dot;
1818

19+
use rustc_ast_map as ast_map;
1920
use syntax::ast;
20-
use syntax::ast_map;
2121

2222
use middle::cfg;
2323

src/librustc/middle/check_static_recursion.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
use session::Session;
1515
use middle::def::{DefStatic, DefConst, DefAssociatedConst, DefMap};
1616

17+
use rustc_ast_map as ast_map;
1718
use syntax::ast;
18-
use syntax::{ast_util, ast_map};
19+
use syntax::ast_util;
1920
use syntax::codemap::Span;
2021
use syntax::visit::Visitor;
2122
use syntax::visit;

src/librustc/middle/const_eval.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@ use middle::astconv_util::ast_ty_to_prim_ty;
2323
use util::num::ToPrimitive;
2424
use util::ppaux::Repr;
2525

26+
use rustc_ast_map as ast_map;
2627
use syntax::ast::{self, Expr};
2728
use syntax::codemap::Span;
2829
use syntax::feature_gate;
2930
use syntax::parse::token::InternedString;
3031
use syntax::ptr::P;
31-
use syntax::{ast_map, ast_util, codemap};
32+
use syntax::{ast_util, codemap};
3233

3334
use std::borrow::{Cow, IntoCow};
3435
use std::num::wrapping::OverflowingOps;

src/librustc/middle/dead.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ use lint;
1717
use util::nodemap::NodeSet;
1818

1919
use std::collections::HashSet;
20-
use syntax::{ast, ast_map, codemap};
20+
use rustc_ast_map as ast_map;
21+
use syntax::{ast, codemap};
2122
use syntax::ast_util::{local_def, is_local};
2223
use syntax::attr::{self, AttrMetaMethods};
2324
use syntax::visit::{self, Visitor};

src/librustc/middle/entry.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
// except according to those terms.
1010

1111

12+
use rustc_ast_map as ast_map;
1213
use session::{config, Session};
1314
use syntax::ast::{Name, NodeId, Item, ItemFn};
14-
use syntax::ast_map;
1515
use syntax::attr;
1616
use syntax::codemap::Span;
1717
use syntax::parse::token;

src/librustc/middle/infer/error_reporting.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ use middle::infer;
7777
use middle::subst;
7878
use middle::ty::{self, Ty};
7979
use middle::ty::{Region, ReFree};
80+
use rustc_ast_map as ast_map;
8081
use std::cell::{Cell, RefCell};
8182
use std::char::from_u32;
8283
use std::string::String;
8384
use syntax::ast;
84-
use syntax::ast_map;
8585
use syntax::ast_util::name_to_dummy_lifetime;
8686
use syntax::owned_slice::OwnedSlice;
8787
use syntax::codemap;

src/librustc/middle/intrinsicck.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ use middle::ty::{TransmuteRestriction, ctxt, ty_bare_fn};
1515
use middle::ty::{self, Ty};
1616
use util::ppaux::Repr;
1717

18+
use rustc_ast_map::NodeForeignItem;
1819
use syntax::abi::RustIntrinsic;
1920
use syntax::ast::DefId;
2021
use syntax::ast;
21-
use syntax::ast_map::NodeForeignItem;
2222
use syntax::codemap::Span;
2323
use syntax::parse::token;
2424
use syntax::visit::Visitor;

src/librustc/middle/mem_categorization.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ use middle::ty::{self, Ty};
8080
use util::nodemap::NodeMap;
8181
use util::ppaux::{Repr, UserString};
8282

83+
use rustc_ast_map as ast_map;
8384
use syntax::ast::{MutImmutable, MutMutable};
8485
use syntax::ast;
85-
use syntax::ast_map;
8686
use syntax::codemap::Span;
8787
use syntax::print::pprust;
8888
use syntax::parse::token;

src/librustc/middle/reachable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ use middle::privacy;
2121
use session::config;
2222
use util::nodemap::NodeSet;
2323

24+
use rustc_ast_map as ast_map;
2425
use std::collections::HashSet;
2526
use syntax::abi;
2627
use syntax::ast;
27-
use syntax::ast_map;
2828
use syntax::ast_util::is_local;
2929
use syntax::attr;
3030
use syntax::visit::Visitor;

src/librustc/middle/region.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ use session::Session;
2020
use middle::ty::{self, Ty};
2121
use util::nodemap::{FnvHashMap, FnvHashSet, NodeMap};
2222

23+
use rustc_ast_map as ast_map;
2324
use std::cell::RefCell;
2425
use syntax::codemap::{self, Span};
2526
use syntax::{ast, visit};
2627
use syntax::ast::{Block, Item, FnDecl, NodeId, Arm, Pat, Stmt, Expr, Local};
2728
use syntax::ast_util::stmt_id;
28-
use syntax::ast_map;
2929
use syntax::ptr::P;
3030
use syntax::visit::{Visitor, FnKind};
3131

src/librustc/middle/ty.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ use std::ops;
7979
use std::rc::Rc;
8080
use std::vec::IntoIter;
8181
use collections::enum_set::{EnumSet, CLike};
82+
use rustc_ast_map as ast_map;
83+
use rustc_ast_map::LinkedPath;
8284
use std::collections::{HashMap, HashSet};
8385
use syntax::abi;
8486
use syntax::ast::{CrateNum, DefId, ItemImpl, ItemTrait, LOCAL_CRATE};
@@ -91,7 +93,6 @@ use syntax::parse::token::{self, InternedString, special_idents};
9193
use syntax::print::pprust;
9294
use syntax::ptr::P;
9395
use syntax::ast;
94-
use syntax::ast_map::{self, LinkedPath};
9596

9697
pub type Disr = u64;
9798

src/librustc/util/ppaux.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ use middle::ty::{ty_uniq, ty_trait, ty_int, ty_uint, ty_infer};
2626
use middle::ty;
2727
use middle::ty_fold::TypeFoldable;
2828

29+
use rustc_ast_map as ast_map;
2930
use std::collections::HashMap;
3031
use std::collections::hash_state::HashState;
3132
use std::hash::Hash;
3233
use std::rc::Rc;
3334
use syntax::abi;
34-
use syntax::ast_map;
3535
use syntax::codemap::{Span, Pos};
3636
use syntax::parse::token;
3737
use syntax::print::pprust;

src/libsyntax/ast_map/blocks.rs renamed to src/librustc_ast_map/blocks.rs

+17-17
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
2424
pub use self::Code::*;
2525

26-
use abi;
27-
use ast::{Block, FnDecl, NodeId};
28-
use ast;
29-
use ast_map::Node;
30-
use ast_map;
31-
use codemap::Span;
32-
use visit;
26+
use syntax::abi;
27+
use syntax::ast::{Block, FnDecl, NodeId};
28+
use syntax::ast;
29+
use syntax::codemap::Span;
30+
use syntax::visit;
31+
32+
use super::Node;
3333

3434
/// An FnLikeNode is a Node that is like a fn, in that it has a decl
3535
/// and a body (as well as a NodeId, a span, etc).
@@ -41,7 +41,7 @@ use visit;
4141
///
4242
/// To construct one, use the `Code::from_node` function.
4343
#[derive(Copy, Clone)]
44-
pub struct FnLikeNode<'a> { node: ast_map::Node<'a> }
44+
pub struct FnLikeNode<'a> { node: Node<'a> }
4545

4646
/// MaybeFnLike wraps a method that indicates if an object
4747
/// corresponds to some FnLikeNode.
@@ -98,15 +98,15 @@ impl<'a> Code<'a> {
9898
pub fn from_node(node: Node) -> Option<Code> {
9999
fn new(node: Node) -> FnLikeNode { FnLikeNode { node: node } }
100100
match node {
101-
ast_map::NodeItem(item) if item.is_fn_like() =>
101+
Node::NodeItem(item) if item.is_fn_like() =>
102102
Some(FnLikeCode(new(node))),
103-
ast_map::NodeTraitItem(tm) if tm.is_fn_like() =>
103+
Node::NodeTraitItem(tm) if tm.is_fn_like() =>
104104
Some(FnLikeCode(new(node))),
105-
ast_map::NodeImplItem(_) =>
105+
Node::NodeImplItem(_) =>
106106
Some(FnLikeCode(new(node))),
107-
ast_map::NodeExpr(e) if e.is_fn_like() =>
107+
Node::NodeExpr(e) if e.is_fn_like() =>
108108
Some(FnLikeCode(new(node))),
109-
ast_map::NodeBlock(block) =>
109+
Node::NodeBlock(block) =>
110110
Some(BlockCode(block)),
111111
_ =>
112112
None,
@@ -203,21 +203,21 @@ impl<'a> FnLikeNode<'a> {
203203
C: FnOnce(ClosureParts<'a>) -> A,
204204
{
205205
match self.node {
206-
ast_map::NodeItem(i) => match i.node {
206+
Node::NodeItem(i) => match i.node {
207207
ast::ItemFn(ref decl, unsafety, abi, ref generics, ref block) =>
208208
item_fn(ItemFnParts{
209209
ident: i.ident, decl: &**decl, unsafety: unsafety, body: &**block,
210210
generics: generics, abi: abi, vis: i.vis, id: i.id, span: i.span
211211
}),
212212
_ => panic!("item FnLikeNode that is not fn-like"),
213213
},
214-
ast_map::NodeTraitItem(ti) => match ti.node {
214+
Node::NodeTraitItem(ti) => match ti.node {
215215
ast::MethodTraitItem(ref sig, Some(ref body)) => {
216216
method(ti.id, ti.ident, sig, None, body, ti.span)
217217
}
218218
_ => panic!("trait method FnLikeNode that is not fn-like"),
219219
},
220-
ast_map::NodeImplItem(ii) => {
220+
Node::NodeImplItem(ii) => {
221221
match ii.node {
222222
ast::MethodImplItem(ref sig, ref body) => {
223223
method(ii.id, ii.ident, sig, Some(ii.vis), body, ii.span)
@@ -227,7 +227,7 @@ impl<'a> FnLikeNode<'a> {
227227
}
228228
}
229229
}
230-
ast_map::NodeExpr(e) => match e.node {
230+
Node::NodeExpr(e) => match e.node {
231231
ast::ExprClosure(_, ref decl, ref block) =>
232232
closure(ClosureParts::new(&**decl, &**block, e.id, e.span)),
233233
_ => panic!("expr FnLikeNode that is not fn-like"),

0 commit comments

Comments
 (0)