summary refs log tree commit diff
path: root/src/libsyntax/ext/tt
AgeCommit message (Collapse)AuthorLines
2014-01-05Use ~-objects instead of @-objects for syntax extsSteven Fackler-2/+2
This is necessary for #11151 to make sure dtors run before the libraries are unloaded.
2014-01-03libsyntax: De-`@mut` `TtFrame`Patrick Walton-7/+7
2014-01-03libsyntax: De-`@mut` `TtFrame::idx`Patrick Walton-14/+14
2014-01-03librustc: De-`@mut` the span handlerPatrick Walton-3/+3
2014-01-03libsyntax: De-`@mut` `StringReader`, `TtReader`, and `reader`Patrick Walton-27/+18
2014-01-03libsyntax: De-`@mut` `TtReader::stack`Patrick Walton-24/+24
2014-01-03libsyntax: De-`@mut` `TtReader::cur_span`Patrick Walton-10/+11
2014-01-03libsyntax: De-`@mut` `TtReader::cur_tok`Patrick Walton-8/+9
2014-01-03libsyntax: De-`@mut` `TtReader::repeat_len`Patrick Walton-5/+8
2014-01-03libsyntax: De-`@mut` `TtReader::repeat_idx`Patrick Walton-17/+29
2014-01-03libsyntax: De-`@mut` `TtReader::interpolations`Patrick Walton-4/+9
2014-01-03librustc: De-`@mut` the parse sessionPatrick Walton-9/+8
2014-01-02libsyntax: De-`@mut` `Parser::span`Patrick Walton-1/+1
2014-01-02libsyntax: De-`@mut` `token` in the parserPatrick Walton-5/+7
2014-01-02libsyntax: De-`@mut` `quote_depth` in the parserPatrick Walton-2/+2
2014-01-02libsyntax: Make the parser mutablePatrick Walton-19/+31
2014-01-01syntax::codemap: Add static DUMMY_SPklutzy-5/+5
It replaces `dummy_sp()`.
2014-01-01syntax::diagnostic: Remove unnecessary traitsklutzy-3/+3
This removes trait `handler` and `span_handler`, and renames `HandlerT` to `Handler`, `CodemapT` to `SpanHandler`.
2013-12-29Start passing around &mut ExtCtxtSteven Fackler-2/+2
2013-12-28Stop using @ExtCtxtSteven Fackler-3/+3
2013-12-01Box Block, fn_decl, variant and Ty in the AST, as they were inflating ↵Eduard Burtescu-2/+2
critical enum sizes.
2013-11-28Register new snapshotsAlex Crichton-4/+4
2013-11-27Freeze the AST by removing a couple of unused @mut ~[T] from token_tree.Eduard Burtescu-6/+5
2013-11-26Support multiple item macrosSteven Fackler-3/+10
Closes #4375
2013-11-26libsyntax: Remove all non-`proc` `do` syntax.Patrick Walton-7/+7
2013-10-22Drop the '2' suffix from logging macrosAlex Crichton-3/+3
Who doesn't like a massive renaming?
2013-10-10syntax: allow macros to expand to items with attributes.Huon Wilson-2/+5
Fixes #4471.
2013-10-02syntax: indicate an error when a macro ignores trailing tokens.Huon Wilson-4/+29
That is, only a single expression or item gets parsed, so if there are any extra tokens (e.g. the start of another item/expression) the user should be told, rather than silently dropping them. An example: macro_rules! foo { () => { println("hi"); println("bye); } } would expand to just `println("hi")`, which is almost certainly not what the programmer wanted. Fixes #8012.
2013-10-02syntax: remove some dead code.Huon Wilson-73/+0
2013-09-30syntax: Remove usage of fmt!Alex Crichton-11/+11
2013-09-26Update the compiler to not use printf/printflnAlex Crichton-2/+2
2013-09-23libsyntax: Remove some more `@fn`s from the macro expanderPatrick Walton-16/+125
2013-09-06WIP: adding mark-cancelling for macro_rulesJohn Clements-1/+4
2013-09-06whitespace, reindentation, and comments onlyJohn Clements-1/+0
2013-09-06uncomment mtwt_resolve callsJohn Clements-2/+2
2013-09-06fix one remaining token comparison, refactor token comparison to avoid == checkJohn Clements-11/+10
2013-09-06capturing macros now implementedJohn Clements-2/+2
2013-09-06comments onlyJohn Clements-0/+6
2013-09-06removed unneccessary SyntaxExpander structsJohn Clements-1/+1
2013-09-06compare macro tokens hygienically (commented out)John Clements-1/+15
2013-09-02Renamed syntax::ast::ident -> IdentMarvin Löbel-13/+13
2013-09-01Modernized a few type names in rustc and syntaxMarvin Löbel-13/+13
2013-08-27librustc: Add support for type parameters in the middle of paths.Patrick Walton-2/+4
For example, `foo::<T>::bar::<U>`. This doesn't enforce that the type parameters are in the right positions, however.
2013-08-11auto merge of #8455 : nikomatsakis/rust/issue-5762-objects-dralston-d, r=graydonbors-7/+7
Fix #5762 and various other aspects of object invocation. r? @graydon
2013-08-11libsyntax: Update from `@Object` to `@mut Object` as requiredNiko Matsakis-7/+7
2013-08-11syntax: Shrink enum Token and enum nonterminalblake2-ppc-5/+5
`enum Token` was 192 bytes (64-bit), as pointed out by pnkfelix; the only bloating variant being `INTERPOLATED(nonterminal)`. Updating `enum nonterminal` to use ~ where variants included big types, shrunk size_of(Token) to 32 bytes (64-bit). I am unsure if the `nt_ident` variant should have an indirection, with ast::ident being only 16 bytes (64-bit), but without this, enum Token would be 40 bytes. A dumb benchmark says that compilation time is unchanged, while peak memory usage for compiling std.rs is down 3% Before:: $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc --cfg stage1 src/libstd/std.rs 19.00user 0.39system 0:19.41elapsed 99%CPU (0avgtext+0avgdata 627820maxresident)k 0inputs+28896outputs (0major+228665minor)pagefaults 0swaps $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc -O --cfg stage1 src/libstd/std.rs 31.64user 0.34system 0:32.02elapsed 99%CPU (0avgtext+0avgdata 629876maxresident)k 0inputs+22432outputs (0major+229411minor)pagefaults 0swaps After:: $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc --cfg stage1 src/libstd/std.rs 19.07user 0.45system 0:19.55elapsed 99%CPU (0avgtext+0avgdata 609384maxresident)k 0inputs+28896outputs (0major+221997minor)pagefaults 0swaps $ time ./x86_64-unknown-linux-gnu/stage1/bin/rustc -O --cfg stage1 src/libstd/std.rs 31.90user 0.34system 0:32.28elapsed 99%CPU (0avgtext+0avgdata 612080maxresident)k 0inputs+22432outputs (0major+223726minor)pagefaults 0swaps
2013-08-08Allow attributes to appear as macro argumentsNiko Matsakis-0/+2
Fixes #8393
2013-08-03remove obsolete `foreach` keywordDaniel Micay-7/+7
this has been replaced by `for`
2013-08-02replace `range` with an external iteratorDaniel Micay-3/+2
2013-08-01std: Change `Times` trait to use `do` instead of `for`blake2-ppc-1/+1
Change the former repetition:: for 5.times { } to:: do 5.times { } .times() cannot be broken with `break` or `return` anymore; for those cases, use a numerical range loop instead.