Skip to content

Commit fec0421

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 6b29a7d commit fec0421

Some content is hidden

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

47 files changed

+119
-79
lines changed

mk/crates.mk

+14-12
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ TARGET_CRATES := libc std flate arena term \
5656
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5757
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
5858
rustc_data_structures
59-
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
59+
SYNTAX_CRATES := syntax syntax_ast_map
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,25 @@ 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
73+
DEPS_syntax_ast_map := std arena syntax
7274
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
73-
rustc_typeck rustc_resolve log syntax serialize rustc_llvm \
74-
rustc_trans rustc_privacy rustc_lint
75+
rustc_typeck rustc_resolve log syntax syntax_ast_map serialize \
76+
rustc_llvm rustc_trans rustc_privacy rustc_lint
7577

7678
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
83-
DEPS_rustc := syntax flate arena serialize getopts rbml \
79+
log syntax syntax_ast_map serialize rustc_llvm
80+
DEPS_rustc_typeck := rustc syntax syntax_ast_map
81+
DEPS_rustc_borrowck := rustc log graphviz syntax syntax_ast_map
82+
DEPS_rustc_resolve := rustc log syntax syntax_ast_map
83+
DEPS_rustc_privacy := rustc log syntax syntax_ast_map
84+
DEPS_rustc_lint := rustc log syntax syntax_ast_map
85+
DEPS_rustc := syntax syntax_ast_map flate arena serialize getopts rbml \
8486
log graphviz rustc_llvm rustc_back rustc_data_structures
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_rustdoc := rustc rustc_driver native:hoedown syntax syntax_ast_map serialize getopts \
8991
test rustc_lint
9092
DEPS_rustc_bitflags := core
9193
DEPS_flate := std native:miniz

src/librustc/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ extern crate rbml;
5959
extern crate collections;
6060
#[macro_use] extern crate log;
6161
#[macro_use] extern crate syntax;
62+
extern crate syntax_ast_map;
6263
#[macro_use] #[no_link] extern crate rustc_bitflags;
6364

6465
extern crate serialize as rustc_serialize; // used by deriving

src/librustc/metadata/csearch.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ use rbml;
2121
use rbml::reader;
2222
use std::rc::Rc;
2323
use syntax::ast;
24-
use syntax::ast_map;
2524
use syntax::attr;
2625
use syntax::attr::AttrMetaMethods;
2726
use syntax::diagnostic::expect;
2827
use syntax::parse::token;
28+
use syntax_ast_map as ast_map;
2929

3030
use std::collections::hash_map::HashMap;
3131

src/librustc/metadata/decoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ use std::str;
4242
use rbml::reader;
4343
use rbml;
4444
use serialize::Decodable;
45-
use syntax::ast_map;
4645
use syntax::attr;
4746
use syntax::parse::token::{IdentInterner, special_idents};
4847
use syntax::parse::token;
4948
use syntax::print::pprust;
5049
use syntax::ast;
5150
use syntax::codemap;
5251
use syntax::ptr::P;
52+
use syntax_ast_map as ast_map;
5353

5454
pub type Cmd<'a> = &'a crate_metadata;
5555

src/librustc/metadata/encoder.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ use std::io::prelude::*;
3434
use std::io::{Cursor, SeekFrom};
3535
use syntax::abi;
3636
use syntax::ast::{self, DefId, NodeId};
37-
use syntax::ast_map::{self, LinkedPath, PathElem, PathElems};
3837
use syntax::ast_util::*;
3938
use syntax::ast_util;
4039
use syntax::attr;
@@ -47,6 +46,8 @@ use syntax::ptr::P;
4746
use syntax::visit::Visitor;
4847
use syntax::visit;
4948
use syntax;
49+
use syntax_ast_map as ast_map;
50+
use syntax_ast_map::{LinkedPath, PathElem, PathElems};
5051
use rbml::writer::Encoder;
5152

5253
/// A borrowed version of `ast::InlinedItem`.

src/librustc/middle/astencode.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@ 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::{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;
3939
use syntax;
40+
use syntax_ast_map as ast_map;
4041

4142
use std::cell::Cell;
4243
use std::io::SeekFrom;

src/librustc/middle/cfg/graphviz.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use std::borrow::IntoCow;
1717
use graphviz as dot;
1818

1919
use syntax::ast;
20-
use syntax::ast_map;
20+
use syntax_ast_map as 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
@@ -15,9 +15,10 @@ use session::Session;
1515
use middle::def::{DefStatic, DefConst, DefMap};
1616

1717
use syntax::ast;
18-
use syntax::{ast_util, ast_map};
18+
use syntax::ast_util;
1919
use syntax::visit::Visitor;
2020
use syntax::visit;
21+
use syntax_ast_map as ast_map;
2122

2223
struct CheckCrateVisitor<'a, 'ast: 'a> {
2324
sess: &'a Session,

src/librustc/middle/const_eval.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ use syntax::codemap::Span;
2727
use syntax::feature_gate;
2828
use syntax::parse::token::InternedString;
2929
use syntax::ptr::P;
30-
use syntax::{ast_map, ast_util, codemap};
30+
use syntax::{ast_util, codemap};
31+
use syntax_ast_map as ast_map;
3132

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

src/librustc/middle/dead.rs

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

1919
use std::collections::HashSet;
20-
use syntax::{ast, ast_map, codemap};
20+
use syntax::{ast, codemap};
2121
use syntax::ast_util::{local_def, is_local};
2222
use syntax::attr::{self, AttrMetaMethods};
2323
use syntax::visit::{self, Visitor};
24+
use syntax_ast_map as ast_map;
2425

2526
// Any local node that may call something in its body block should be
2627
// explored. For example, if it's a live NodeItem that is a

src/librustc/middle/entry.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111

1212
use session::{config, Session};
1313
use syntax::ast::{Name, NodeId, Item, ItemFn};
14-
use syntax::ast_map;
1514
use syntax::attr;
1615
use syntax::codemap::Span;
1716
use syntax::parse::token;
1817
use syntax::visit;
1918
use syntax::visit::Visitor;
19+
use syntax_ast_map as ast_map;
2020

2121
struct EntryContext<'a, 'ast: 'a> {
2222
session: &'a Session,

src/librustc/middle/infer/error_reporting.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ use std::char::from_u32;
8282
use std::rc::Rc;
8383
use std::string::String;
8484
use syntax::ast;
85-
use syntax::ast_map;
8685
use syntax::ast_util::name_to_dummy_lifetime;
8786
use syntax::owned_slice::OwnedSlice;
8887
use syntax::codemap;
8988
use syntax::parse::token;
9089
use syntax::print::pprust;
9190
use syntax::ptr::P;
91+
use syntax_ast_map as ast_map;
9292
use util::ppaux::bound_region_to_string;
9393
use util::ppaux::note_and_explain_region;
9494

src/librustc/middle/intrinsicck.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ use util::ppaux::Repr;
1818
use syntax::abi::RustIntrinsic;
1919
use syntax::ast::DefId;
2020
use syntax::ast;
21-
use syntax::ast_map::NodeForeignItem;
2221
use syntax::codemap::Span;
2322
use syntax::parse::token;
2423
use syntax::visit::Visitor;
2524
use syntax::visit;
25+
use syntax_ast_map::NodeForeignItem;
2626

2727
pub fn check_crate(tcx: &ctxt) {
2828
let mut visitor = IntrinsicCheckingVisitor {

src/librustc/middle/mem_categorization.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ use util::ppaux::{Repr, UserString};
8282

8383
use syntax::ast::{MutImmutable, MutMutable};
8484
use syntax::ast;
85-
use syntax::ast_map;
8685
use syntax::codemap::Span;
8786
use syntax::print::pprust;
8887
use syntax::parse::token;
88+
use syntax_ast_map as ast_map;
8989

9090
use std::cell::RefCell;
9191
use std::rc::Rc;

src/librustc/middle/reachable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ use util::nodemap::NodeSet;
2424
use std::collections::HashSet;
2525
use syntax::abi;
2626
use syntax::ast;
27-
use syntax::ast_map;
2827
use syntax::ast_util::is_local;
2928
use syntax::attr;
3029
use syntax::visit::Visitor;
3130
use syntax::visit;
31+
use syntax_ast_map as ast_map;
3232

3333
// Returns true if the given set of generics implies that the item it's
3434
// associated with must be inlined.

src/librustc/middle/region.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ use syntax::codemap::{self, Span};
2626
use syntax::{ast, visit};
2727
use syntax::ast::{Block, Item, FnDecl, NodeId, Arm, Pat, Stmt, Expr, Local};
2828
use syntax::ast_util::stmt_id;
29-
use syntax::ast_map;
3029
use syntax::ptr::P;
3130
use syntax::visit::{Visitor, FnKind};
31+
use syntax_ast_map as ast_map;
3232

3333
/// CodeExtent represents a statically-describable extent that can be
3434
/// used to bound the lifetime/region for values.

src/librustc/middle/ty.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ use syntax::parse::token::{self, InternedString, special_idents};
8888
use syntax::print::pprust;
8989
use syntax::ptr::P;
9090
use syntax::ast;
91-
use syntax::ast_map::{self, LinkedPath};
91+
use syntax_ast_map as ast_map;
92+
use syntax_ast_map::LinkedPath;
9293

9394
pub type Disr = u64;
9495

src/librustc/util/ppaux.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ use std::collections::hash_state::HashState;
3131
use std::hash::Hash;
3232
use std::rc::Rc;
3333
use syntax::abi;
34-
use syntax::ast_map;
3534
use syntax::codemap::{Span, Pos};
3635
use syntax::parse::token;
3736
use syntax::print::pprust;
3837
use syntax::ptr::P;
3938
use syntax::{ast, ast_util};
4039
use syntax::owned_slice::OwnedSlice;
40+
use syntax_ast_map as ast_map;
4141

4242
/// Produces a string suitable for debugging output.
4343
pub trait Repr<'tcx> {

src/librustc_borrowck/borrowck/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ use rustc::util::ppaux::{note_and_explain_region, Repr, UserString};
3333
use std::rc::Rc;
3434
use std::string::String;
3535
use syntax::ast;
36-
use syntax::ast_map;
37-
use syntax::ast_map::blocks::{FnLikeNode, FnParts};
3836
use syntax::ast_util;
3937
use syntax::codemap::Span;
4038
use syntax::parse::token;
4139
use syntax::visit;
4240
use syntax::visit::{Visitor, FnKind};
4341
use syntax::ast::{FnDecl, Block, NodeId};
42+
use syntax_ast_map as ast_map;
43+
use syntax_ast_map::blocks::{FnLikeNode, FnParts};
4444

4545
pub mod check_loans;
4646

src/librustc_borrowck/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#[macro_use] extern crate log;
3232
#[macro_use] extern crate syntax;
33+
extern crate syntax_ast_map;
3334

3435
// for "clarity", rename the graphviz crate to dot; graphviz within `borrowck`
3536
// refers to the borrowck-specific graphviz adapter traits.

src/librustc_driver/driver.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ use std::fs;
3737
use std::io::{self, Write};
3838
use std::path::{Path, PathBuf};
3939
use syntax::ast;
40-
use syntax::ast_map;
4140
use syntax::attr;
4241
use syntax::attr::AttrMetaMethods;
4342
use syntax::diagnostics;
4443
use syntax::parse;
4544
use syntax::parse::token;
4645
use syntax;
46+
use syntax_ast_map as ast_map;
4747

4848
pub fn compile_input(sess: Session,
4949
cfg: ast::CrateConfig,

src/librustc_driver/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ extern crate serialize;
5353
extern crate rustc_llvm as llvm;
5454
#[macro_use] extern crate log;
5555
#[macro_use] extern crate syntax;
56+
extern crate syntax_ast_map;
5657

5758
pub use syntax::diagnostic;
5859

src/librustc_driver/pretty.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ use rustc_borrowck::graphviz as borrowck_dot;
3030
use rustc_resolve as resolve;
3131

3232
use syntax::ast;
33-
use syntax::ast_map::{self, blocks, NodePrinter};
3433
use syntax::codemap;
3534
use syntax::fold::{self, Folder};
3635
use syntax::print::{pp, pprust};
3736
use syntax::ptr::P;
37+
use syntax_ast_map as ast_map;
38+
use syntax_ast_map::{blocks, NodePrinter};
3839

3940
use graphviz as dot;
4041

src/librustc_lint/builtin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ use std::collections::hash_map::Entry::{Occupied, Vacant};
4444
use std::{cmp, slice};
4545
use std::{i8, i16, i32, i64, u8, u16, u32, u64, f32, f64};
4646

47-
use syntax::{abi, ast, ast_map};
47+
use syntax::{abi, ast};
4848
use syntax::ast_util::{self, is_shift_binop, local_def};
4949
use syntax::attr::{self, AttrMetaMethods};
5050
use syntax::codemap::{self, Span};
@@ -53,6 +53,7 @@ use syntax::parse::token;
5353
use syntax::ast::{TyIs, TyUs, TyI8, TyU8, TyI16, TyU16, TyI32, TyU32, TyI64, TyU64};
5454
use syntax::ptr::P;
5555
use syntax::visit::{self, Visitor};
56+
use syntax_ast_map as ast_map;
5657

5758
// hardwired lints from librustc
5859
pub use lint::builtin::*;

src/librustc_lint/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#![cfg_attr(test, feature(test))]
4444

4545
extern crate syntax;
46+
extern crate syntax_ast_map;
4647
#[macro_use]
4748
extern crate rustc;
4849
#[macro_use]

src/librustc_privacy/lib.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#[macro_use] extern crate log;
2727
#[macro_use] extern crate syntax;
28+
extern crate syntax_ast_map;
2829

2930
extern crate rustc;
3031

@@ -46,11 +47,12 @@ use rustc::middle::ty::MethodTraitObject;
4647
use rustc::middle::ty::{self, Ty};
4748
use rustc::util::nodemap::{NodeMap, NodeSet};
4849

49-
use syntax::{ast, ast_map};
50+
use syntax::ast;
5051
use syntax::ast_util::{is_local, local_def};
5152
use syntax::codemap::Span;
5253
use syntax::parse::token;
5354
use syntax::visit::{self, Visitor};
55+
use syntax_ast_map as ast_map;
5456

5557
type Context<'a, 'tcx> = (&'a MethodMap<'tcx>, &'a def::ExportMap);
5658

src/librustc_resolve/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
#[macro_use] extern crate log;
2929
#[macro_use] extern crate syntax;
30+
extern crate syntax_ast_map;
3031
#[macro_use] #[no_link] extern crate rustc_bitflags;
3132

3233
extern crate rustc;
@@ -77,14 +78,14 @@ use syntax::ast::{TyPath, TyPtr};
7778
use syntax::ast::{TyRptr, TyStr, TyUs, TyU8, TyU16, TyU32, TyU64, TyUint};
7879
use syntax::ast::TypeImplItem;
7980
use syntax::ast;
80-
use syntax::ast_map;
8181
use syntax::ast_util::{local_def, walk_pat};
8282
use syntax::attr::AttrMetaMethods;
8383
use syntax::ext::mtwt;
8484
use syntax::parse::token::{self, special_names, special_idents};
8585
use syntax::ptr::P;
8686
use syntax::codemap::{self, Span, Pos};
8787
use syntax::visit::{self, Visitor};
88+
use syntax_ast_map as ast_map;
8889

8990
use std::collections::{HashMap, HashSet};
9091
use std::collections::hash_map::Entry::{Occupied, Vacant};

0 commit comments

Comments
 (0)