| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2016-11-03 | Reduce the size of `Token` and make it cheaper to clone by refactoring | Jeffrey Seyfried | -8/+14 | |
| `Token::Interpolated(Nonterminal)` -> `Token::Interpolated(Rc<Nonterminal>)`. | ||||
| 2016-10-29 | Move `CrateConfig` from `Crate` to `ParseSess`. | Jeffrey Seyfried | -2/+2 | |
| 2016-10-24 | Refactor away fields `MacroDef::{use_locally, export}`. | Jeffrey Seyfried | -3/+2 | |
| 2016-10-22 | Auto merge of #37318 - nnethercote:html5ever-more, r=nrc,eddyb | bors | -7/+12 | |
| Avoid some allocations in the macro parser These three commits reduce the number of heap allocations done when compiling rustc-benchmarks/html5ever-2016-08-25 by 20%, from 16.5M to 13.3M. This speeds up (debug) compilation of it with a stage1 compiler by about 7%. | ||||
| 2016-10-21 | Replace the `String` in `ParseResult::Failure` with `Token`. | Nicholas Nethercote | -7/+12 | |
| This lets us delay creation of failure messages until they are needed, which avoids ~1.6M allocations in html5ever. | ||||
| 2016-10-21 | Avoid an unnecessary clone in `generic_extensions`. | Nicholas Nethercote | -2/+2 | |
| This avoids ~800,000 allocations in html5ever. | ||||
| 2016-10-19 | Improve `$crate`. | Jeffrey Seyfried | -9/+3 | |
| 2016-10-14 | Avoid many CrateConfig clones. | Nicholas Nethercote | -2/+2 | |
| This commit changes `ExtCtx::cfg()` so it returns a `CrateConfig` reference instead of a clone. As a result, it also changes all of the `cfg()` callsites to explicitly clone... except one, because the commit also changes `macro_parser::parse()` to take `&CrateConfig`. This is good, because that function can be hot, and `CrateConfig` is expensive to clone. This change almost halves the number of heap allocations done by rustc for `html5ever` in rustc-benchmarks suite, which makes compilation 1.20x faster. | ||||
| 2016-09-28 | Rollup merge of #36789 - jseyfried:non_inline_mod_in_block, r=nikomatsakis | Jonathan Turner | -1/+1 | |
| Allow more non-inline modules in blocks Currently, non-inline modules without a `#[path]` attribute are not allowed in blocks. This PR allows non-inline modules that have an ancestor module with a `#[path]` attribute, provided there is not a nearer ancestor block. For example, ```rust fn main() { #[path = "..."] mod foo { mod bar; //< allowed by this PR fn f() { mod bar; //< still an error } } } ``` Fixes #36772. r? @nikomatsakis | ||||
| 2016-09-28 | Allow non-inline modules in more places. | Jeffrey Seyfried | -1/+1 | |
| 2016-09-26 | Rollup merge of #36721 - TimNN:infinite-emptiness, r=nrc | Jonathan Turner | -1/+38 | |
| reject macros with empty repetitions Fixes #5067 by checking the lhs of `macro_rules!` for repetitions which could match an empty token tree. | ||||
| 2016-09-26 | reject macros with empty repetitions | Tim Neumann | -1/+38 | |
| 2016-09-26 | Refactor `ensure_complete_parse`. | Jeffrey Seyfried | -24/+11 | |
| 2016-09-26 | Remove `TokResult`. | Jeffrey Seyfried | -1/+1 | |
| 2016-09-26 | Refactor `parse_expansion` out of `ResultAnyMacro`. | Jeffrey Seyfried | -88/+12 | |
| 2016-09-24 | Load macros from `#[macro_use]` extern crates in `resolve`. | Jeffrey Seyfried | -4/+5 | |
| 2016-09-24 | Refactor `ext::tt::macro_rules::compile` to take a `ParseSess` instead of an ↵ | Jeffrey Seyfried | -39/+32 | |
| `ExtCtxt`. | ||||
| 2016-09-23 | reviewer comments and rebasing | Nick Cameron | -7/+4 | |
| 2016-09-15 | Remove `MacroRulesTT`. | Jeffrey Seyfried | -3/+36 | |
| 2016-09-13 | Move macro resolution into `librustc_resolve`. | Jeffrey Seyfried | -2/+2 | |
| 2016-09-05 | Refactor `SyntaxEnv`. | Jeffrey Seyfried | -2/+2 | |
| 2016-09-05 | In `Parser` and `ExtCtxt`, replace fields `filename` and `mod_path_stack` | Jeffrey Seyfried | -2/+1 | |
| with a single field `directory: PathBuf`. | ||||
| 2016-08-07 | Make metavariables hygienic. | Jeffrey Seyfried | -2/+2 | |
| 2016-07-13 | Start a best-effort warning cycle. | Jeffrey Seyfried | -1/+1 | |
| 2016-07-13 | cleanup: Refactor parser method `finish_parsing_statement` -> `parse_full_stmt`. | Jeffrey Seyfried | -7/+1 | |
| 2016-07-12 | Parse macro-expanded statements like ordinary statements. | Jeffrey Seyfried | -1/+7 | |
| 2016-07-04 | Revert "Change `fold_tt` and `fold_tts` to take token trees by value ↵ | Jeffrey Seyfried | -4/+5 | |
| (instead of by reference)" This reverts commit 5bf7970ac70b4e7781e7b2f3816720aa62fac6fd. | ||||
| 2016-06-26 | Rollup merge of #33943 - jseyfried:libsyntax_cleanup, r=nrc | Jeffrey Seyfried | -22/+19 | |
| Miscellaneous low priority cleanup in `libsyntax`. | ||||
| 2016-06-26 | Rollup merge of #34385 - cgswords:tstream, r=nrc | Jeffrey Seyfried | -7/+9 | |
| syntax-[breaking-change] cc #31645 (Only breaking because ast::TokenTree is now tokenstream::TokenTree.) This pull request refactors TokenTrees into their own file as src/libsyntax/tokenstream.rs, moving them out of src/libsyntax/ast.rs, in order to prepare for an accompanying TokenStream implementation (per RFC 1566). | ||||
| 2016-06-25 | Rollup merge of #34403 - jonathandturner:move_liberror, r=alexcrichton | Jeffrey Seyfried | -1/+1 | |
| This PR refactors the 'errors' part of libsyntax into its own crate (librustc_errors). This is the first part of a few refactorings to simplify error reporting and potentially support more output formats (like a standardized JSON output and possibly an --explain mode that can work with the user's code), though this PR stands on its own and doesn't assume further changes. As part of separating out the errors crate, I have also refactored the code position portion of codemap into its own crate (libsyntax_pos). While it's helpful to have the common code positions in a separate crate for the new errors crate, this may also enable further simplifications in the future. | ||||
| 2016-06-23 | Move errors from libsyntax to its own crate | Jonathan Turner | -1/+1 | |
| 2016-06-21 | Refactored tokentrees into their own files in preparation for tokenstreams. ↵ | cgswords | -7/+9 | |
| Modified tests to point to the new file now. | ||||
| 2016-06-14 | Change `fold_tt` and `fold_tts` to take token trees by value (instead of by ↵ | Jeffrey Seyfried | -21/+19 | |
| reference) | ||||
| 2016-06-13 | Add support for macro expansion inside trait items | Joseph Dunne | -0/+15 | |
| 2016-06-07 | Auto merge of #33982 - LeoTestard:remove-check-matcher-old, r=pnkfelix | bors | -233/+18 | |
| Remove the old FOLLOW checking (aka `check_matcher_old`). It was supposed to be removed at the next release cycle but is still in the tree since like 6 months. Potential breaking change, since some cases (such as #25658) will change from a warning to an error. But the warning stating that it will be a hard error in the next release has been there for 6 months now. I think it's safe to break this code. ^_^ | ||||
| 2016-06-06 | Remove the old FOLLOW checking (aka `check_matcher_old`). | Leo Testard | -233/+18 | |
| 2016-05-26 | Reject a LHS formed of a single sequence TT during `macro_rules!` checking. | Leo Testard | -9/+4 | |
| This was already rejected during expansion. Encountering malformed LHS or RHS during expansion is now considered a bug. | ||||
| 2016-05-24 | Avoid iterating two times over the list of LHSes. | Leo Testard | -5/+4 | |
| 2016-05-24 | Make sure that macros that didn't pass LHS checking are not expanded. | Leo Testard | -33/+53 | |
| This avoids duplicate errors for things like invalid fragment specifiers, or parsing errors for ambiguous macros. Fixes #29231. | ||||
| 2016-04-24 | syntax: Make static/super/self/Self keywords + special ident cleanup | Vadim Petrochenkov | -3/+3 | |
| 2016-04-24 | syntax: Get rid of token::IdentStyle | Vadim Petrochenkov | -12/+10 | |
| 2016-04-13 | implement RFC amendment 1494 | Alex Burka | -0/+1 | |
| 2016-03-02 | Fix the search paths for macro-expanded non-inline modules | Jeffrey Seyfried | -1/+7 | |
| 2016-02-11 | Remove some unnecessary indirection from AST structures | Vadim Petrochenkov | -2/+2 | |
| 2016-02-11 | [breaking-change] don't glob export ast::KleeneOp variants | Oliver 'ker' Schneider | -2/+2 | |
| 2016-01-27 | trpl: fix macro follow sets | Alex Burka | -0/+1 | |
| 2016-01-23 | add `[` to FOLLOW(ty) and FOLLOW(path) | Alex Burka | -1/+1 | |
| Following RFC 1462 (amending 550). Closes #31135. | ||||
| 2016-01-07 | extending FOLLOW(NT) as specified in amendment. | Felix S. Klock II | -4/+7 | |
| See RFC amendment 1384: https://github.com/rust-lang/rfcs/pull/1384 | ||||
| 2016-01-07 | macro_rules: proper FIRST/FOLLOW computations for checking macro_rules validity. | Felix S. Klock II | -16/+500 | |
| See RFC amendment 1384 and tracking issue 30450: https://github.com/rust-lang/rfcs/pull/1384 https://github.com/rust-lang/rust/issues/30450 Moved old check_matcher code into check_matcher_old combined the two checks to enable a warning cycle (where we will continue to error if the two checks agree to reject, accept if the new check says accept, and warn if the old check accepts but the new check rejects). | ||||
| 2016-01-06 | Auto merge of #30654 - nrc:panictry, r=brson | bors | -2/+2 | |
| The motivation (other than removing boilerplate) is that this is a baby step towards a parser with error recovery. [breaking-change] if you use any of the changed functions, you'll need to remove a try! or panictry! | ||||
