| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-07-27 | tests: Move run-pass tests without naming conflicts to ui | Vadim Petrochenkov | -230/+0 | |
| 2019-07-27 | tests: Add missing run-pass annotations | Vadim Petrochenkov | -0/+1 | |
| 2019-06-23 | let_chains: Add test cases to pprust-expr-roundtrip. | Mazdak Farrokhzad | -23/+32 | |
| 2019-06-05 | Aggregation of drive-by cosmetic changes. | Alexander Regueiro | -17/+15 | |
| 2019-05-29 | Update the rest of the test suites to use dyn | memoryruins | -1/+1 | |
| 2019-05-21 | Move `edition` outside the hygiene lock and avoid accessing it | John Kåre Alsaker | -1/+1 | |
| 2019-02-27 | Rename variadic to c_variadic | Dan Robertson | -1/+1 | |
| Function signatures with the `variadic` member set are actually C-variadic functions. Make this a little more explicit by renaming the `variadic` boolean value, `c_variadic`. | ||||
| 2019-02-10 | tests: doc comments | Alexander Regueiro | -2/+2 | |
| 2019-02-06 | Overhaul `syntax::fold::Folder`. | Nicholas Nethercote | -24/+28 | |
| This commit changes `syntax::fold::Folder` from a functional style (where most methods take a `T` and produce a new `T`) to a more imperative style (where most methods take and modify a `&mut T`), and renames it `syntax::mut_visit::MutVisitor`. The first benefit is speed. The functional style does not require any reallocations, due to the use of `P::map` and `MoveMap::move_{,flat_}map`. However, every field in the AST must be overwritten; even those fields that are unchanged are overwritten with the same value. This causes a lot of unnecessary memory writes. The imperative style reduces instruction counts by 1--3% across a wide range of workloads, particularly incremental workloads. The second benefit is conciseness; the imperative style is usually more concise. E.g. compare the old functional style: ``` fn fold_abc(&mut self, abc: ABC) { ABC { a: fold_a(abc.a), b: fold_b(abc.b), c: abc.c, } } ``` with the imperative style: ``` fn visit_abc(&mut self, ABC { a, b, c: _ }: &mut ABC) { visit_a(a); visit_b(b); } ``` (The reductions get larger in more complex examples.) Overall, the patch removes over 200 lines of code -- even though the new code has more comments -- and a lot of the remaining lines have fewer characters. Some notes: - The old style used methods called `fold_*`. The new style mostly uses methods called `visit_*`, but there are a few methods that map a `T` to something other than a `T`, which are called `flat_map_*` (`T` maps to multiple `T`s) or `filter_map_*` (`T` maps to 0 or 1 `T`s). - `move_map.rs`/`MoveMap`/`move_map`/`move_flat_map` are renamed `map_in_place.rs`/`MapInPlace`/`map_in_place`/`flat_map_in_place` to reflect their slightly changed signatures. - Although this commit renames the `fold` module as `mut_visit`, it keeps it in the `fold.rs` file, so as not to confuse git. The next commit will rename the file. | ||||
| 2018-12-27 | Get rid of `Block::recovered` | Vadim Petrochenkov | -1/+0 | |
| 2018-12-25 | Remove licenses | Mark Rousskov | -10/+0 | |
| 2018-12-04 | updates all Filename variants to take a fingerprint | Matthew Russo | -2/+4 | |
| 2018-08-19 | mv (mod) codemap source_map | Donato Sciarra | -2/+2 | |
| 2018-08-13 | Move SmallVec and ThinVec out of libsyntax | ljedrz | -1/+2 | |
| 2018-06-21 | Fix test using ExprKind::Closure | Taylor Cramer | -0/+1 | |
| 2018-04-06 | Remove more duplicated spans | Vadim Petrochenkov | -3/+3 | |
| 2018-04-06 | Rename `ast::Variant_::name` into `ident` + Fix rebase | Vadim Petrochenkov | -4/+2 | |
| 2018-04-06 | Rename `PathSegment::identifier` to `ident` | Vadim Petrochenkov | -24/+5 | |
| 2018-04-03 | Remove all unstable placement features | Aidan Hobson Sayers | -23/+16 | |
| Closes #22181, #27779 | ||||
| 2018-03-14 | Remove syntax and syntax_pos thread locals | John Kåre Alsaker | -1/+4 | |
| 2018-01-23 | Adds support for immovable generators. Move checking of invalid borrows ↵ | John Kåre Alsaker | -1/+5 | |
| across suspension points to borrowck. Fixes #44197, #45259 and #45093. | ||||
| 2017-12-21 | Do not emit type errors on recovered blocks | Esteban Küber | -0/+1 | |
| When a parse error occurs on a block, the parser will recover and create a block with the statements collected until that point. Now a flag stating that a recovery has been performed in this block is propagated so that the type checker knows that the type of the block (which will be identified as `()`) shouldn't be checked against the expectation to reduce the amount of irrelevant diagnostic errors shown to the user. | ||||
| 2017-12-14 | Use PathBuf instead of String where applicable | Oliver Schneider | -2/+2 | |
| 2017-09-06 | better explanatory comment for the pprust-expr-roundtrip test | Stuart Pernsteiner | -0/+18 | |
| 2017-09-06 | pprust: fix parenthesization of exprs | Stuart Pernsteiner | -0/+227 | |
