diff options
| author | bors <bors@rust-lang.org> | 2014-12-29 13:32:19 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-12-29 13:32:19 +0000 |
| commit | 3dcc409fac18a258ba2a8af4345d9566ec8eebad (patch) | |
| tree | 140cd42aa68752ae7760bf9f2765bf1ff8835189 /src/libsyntax | |
| parent | 25fb12b8a5411901675ede6b147bbc6c0b7437b7 (diff) | |
| parent | 91db254c81f3c90d5d9d8b5db2660a918efef8bb (diff) | |
| download | rust-3dcc409fac18a258ba2a8af4345d9566ec8eebad.tar.gz rust-3dcc409fac18a258ba2a8af4345d9566ec8eebad.zip | |
auto merge of #19549 : huonw/rust/middle-ty-2, r=nikomatsakis
This takes building `librustc/lib.rs` from using 696 MB to 588 (`rustc --no-trans`), and 1.99 GB to 1.87 (`rustc -O`). It also reduces `sty` down to 32 bytes on platforms with 64-bit pointers, at the expense of some more side-tables in `ctxt`. I'm sure there's more gains to be had from reducing the size of the side tables (e.g. by making the actual things they're storing smaller). r? @nikomatsakis
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 2 |
6 files changed, 9 insertions, 9 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 0c8c17b080b..d4932fbb5f1 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -607,7 +607,7 @@ pub enum Stmt_ { /// Expr with trailing semi-colon (may have any type): StmtSemi(P<Expr>, NodeId), - StmtMac(Mac, MacStmtStyle), + StmtMac(P<Mac>, MacStmtStyle), } #[deriving(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Show)] diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index f2b6f6bfe16..d2d624fa05e 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -672,7 +672,7 @@ fn expand_stmt(s: Stmt, fld: &mut MacroExpander) -> SmallVector<P<Stmt>> { StmtMac(mac, style) => (mac, style), _ => return expand_non_macro_stmt(s, fld) }; - let expanded_stmt = match expand_mac_invoc(mac, s.span, + let expanded_stmt = match expand_mac_invoc(mac.and_then(|m| m), s.span, |r| r.make_stmt(), mark_stmt, fld) { Some(stmt) => stmt, diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 0803de1bb53..c58901701f5 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -1461,7 +1461,7 @@ pub fn noop_fold_stmt<T: Folder>(Spanned {node, span}: Stmt, folder: &mut T) })) } StmtMac(mac, semi) => SmallVector::one(P(Spanned { - node: StmtMac(folder.fold_mac(mac), semi), + node: StmtMac(mac.map(|m| folder.fold_mac(m)), semi), span: span })) } diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 94b61ba56d2..a2e2abab03e 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -3746,9 +3746,9 @@ impl<'a> Parser<'a> { if id.name == token::special_idents::invalid.name { P(spanned(lo, hi, - StmtMac(spanned(lo, + StmtMac(P(spanned(lo, hi, - MacInvocTT(pth, tts, EMPTY_CTXT)), + MacInvocTT(pth, tts, EMPTY_CTXT))), style))) } else { // if it has a special ident, it's definitely an item @@ -3911,7 +3911,7 @@ impl<'a> Parser<'a> { _ => { let e = self.mk_mac_expr(span.lo, span.hi, - macro.node); + macro.and_then(|m| m.node)); let e = self.parse_dot_or_call_expr_with(e); self.handle_expression_like_statement( @@ -3940,7 +3940,7 @@ impl<'a> Parser<'a> { expr = Some( self.mk_mac_expr(span.lo, span.hi, - m.node)); + m.and_then(|x| x.node))); } _ => { stmts.push(P(Spanned { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 3d53bd8aadf..623f20bccd2 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1337,7 +1337,7 @@ impl<'a> State<'a> { ast::MacStmtWithBraces => token::Brace, _ => token::Paren }; - try!(self.print_mac(mac, delim)); + try!(self.print_mac(&**mac, delim)); match style { ast::MacStmtWithBraces => {} _ => try!(word(&mut self.s, ";")), diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 4cc93467a7c..714339d0f0a 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -730,7 +730,7 @@ pub fn walk_stmt<'v, V: Visitor<'v>>(visitor: &mut V, statement: &'v Stmt) { StmtExpr(ref expression, _) | StmtSemi(ref expression, _) => { visitor.visit_expr(&**expression) } - StmtMac(ref macro, _) => visitor.visit_mac(macro), + StmtMac(ref macro, _) => visitor.visit_mac(&**macro), } } |
