| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-05-21 | Move `edition` outside the hygiene lock and avoid accessing it | John Kåre Alsaker | -1/+1 | |
| 2019-05-20 | Remove `Symbol::gensym()`. | Nicholas Nethercote | -6/+7 | |
| 2019-05-17 | Avoid unnecessary interning in `Ident::from_str()` calls. | Nicholas Nethercote | -2/+2 | |
| A lot of these static symbols are pre-interned. | ||||
| 2019-05-13 | Remove the equality operation between `Symbol` and strings. | Nicholas Nethercote | -1/+2 | |
| And also the equality between `Path` and strings, because `Path` is made up of `Symbol`s. | ||||
| 2019-05-13 | Pass a `Symbol` to `check_name`, `emit_feature_err`, and related functions. | Nicholas Nethercote | -6/+5 | |
| 2019-04-17 | Fix comments around test harness generation | Alexey Shmalko | -1/+1 | |
| 2019-03-16 | Refactor away `NestedMetaItemKind` | Vadim Petrochenkov | -1/+1 | |
| Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields | ||||
| 2019-03-16 | Rename `MetaItem::ident` to `MetaItem::path` | Vadim Petrochenkov | -1/+1 | |
| 2019-03-16 | syntax: Do not accidentally treat multi-segment meta-items as single-segment | Vadim Petrochenkov | -1/+4 | |
| 2019-02-13 | Cleanup imports | Taiki Endo | -2/+1 | |
| 2019-02-13 | Rename rustc_errors dependency in rust 2018 crates | Taiki Endo | -1/+1 | |
| 2019-02-11 | Use `Rc<[Symbol]>` instead of `Vec<Symbol>` to reduce # of allocs | Oliver Scherer | -2/+2 | |
| 2019-02-11 | Require a list of features to allow in `allow_internal_unstable` | Oliver Scherer | -1/+5 | |
| 2019-02-07 | libsyntax => 2018 | Taiki Endo | -25/+27 | |
| 2019-02-06 | Overhaul `syntax::fold::Folder`. | Nicholas Nethercote | -32/+32 | |
| 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. | ||||
| 2019-01-13 | Implement basic input validation for built-in attributes | Vadim Petrochenkov | -6/+3 | |
| 2018-12-25 | Remove licenses | Mark Rousskov | -10/+0 | |
| 2018-12-07 | Various minor/cosmetic improvements to code | Alexander Regueiro | -1/+1 | |
| 2018-10-26 | Remove redundant clone | Shotaro Yamada | -1/+1 | |
| 2018-09-27 | Auto merge of #52319 - tinco:issue_12590, r=pnkfelix | bors | -0/+1 | |
| Track whether module declarations are inline (fixes #12590) To track whether module declarations are inline I added a field `inline: bool` to `ast::Mod`. The main use case is for pretty to know whether it should render the items associated with the module, but perhaps there are use cases for this information to not be forgotten in the AST. | ||||
| 2018-09-26 | Remove OneVector | ljedrz | -5/+4 | |
| 2018-09-10 | reintroduce inline to libsyntax test | Tinco Andringa | -54/+1 | |
| 2018-09-10 | Track whether module declarations are inline (fixes #12590) | Tinco Andringa | -0/+54 | |
| 2018-09-04 | Move #[test_case] to a syntax extension | John Renner | -1/+1 | |
| 2018-09-04 | Introduce Custom Test Frameworks | John Renner | -476/+104 | |
| 2018-08-23 | Use optimized SmallVec implementation | Igor Gutorov | -2/+3 | |
| 2018-08-19 | mv codemap source_map | Donato Sciarra | -1/+1 | |
| 2018-08-19 | mv (mod) codemap source_map | Donato Sciarra | -3/+3 | |
| 2018-08-19 | mv FileMap SourceFile | Donato Sciarra | -1/+1 | |
| 2018-08-19 | mv CodeMap SourceMap | Donato Sciarra | -1/+1 | |
| 2018-08-13 | Move SmallVec and ThinVec out of libsyntax | ljedrz | -7/+8 | |
| 2018-08-07 | Avoid unnecessary pattern matching against Option and Result | ljedrz | -1/+1 | |
| 2018-07-14 | Address comments | Vadim Petrochenkov | -1/+1 | |
| 2018-07-14 | Remove most of `PartialEq` impls from AST and HIR structures | Vadim Petrochenkov | -2/+1 | |
| 2018-07-10 | Deny bare trait objects in in src/libsyntax | ljedrz | -2/+2 | |
| 2018-06-27 | Implement `#[macro_export(local_inner_macros)]` | Vadim Petrochenkov | -0/+1 | |
| 2018-06-23 | hygiene: Merge `NameAndSpan` into `ExpnInfo` | Vadim Petrochenkov | -8/+6 | |
| 2018-06-21 | async await desugaring and tests | Taylor Cramer | -3/+9 | |
| 2018-06-21 | Parse async fn header. | Without Boats | -21/+25 | |
| This is gated on edition 2018 & the `async_await` feature gate. The parser will accept `async fn` and `async unsafe fn` as fn items. Along the same lines as `const fn`, only `async unsafe fn` is permitted, not `unsafe async fn`.The parser will not accept `async` functions as trait methods. To do a little code clean up, four fields of the function type struct have been merged into the new `FnHeader` struct: constness, asyncness, unsafety, and ABI. Also, a small bug in HIR printing is fixed: it previously printed `const unsafe fn` as `unsafe const fn`, which is grammatically incorrect. | ||||
| 2018-06-20 | Remove methods from ast::GenericParam and ast::Generics | varkor | -1/+1 | |
| 2018-06-14 | create multiple HIR items for a use statement | QuietMisdreavus | -2/+2 | |
| 2018-06-06 | append unused variables with _ | dylan_DPC | -3/+3 | |
| 2018-06-05 | remove redundant match branch | dylan_DPC | -1/+0 | |
| 2018-06-02 | Stabilize unit tests with non-`()` return type | dylan_DPC | -31/+7 | |
| 2018-05-26 | Add `Ident::as_str` helper | Vadim Petrochenkov | -1/+1 | |
| 2018-05-17 | Add edition to expansion info | Vadim Petrochenkov | -1/+2 | |
| 2018-04-26 | Fixed tidy errors. | Irina Popa | -1/+3 | |
| 2018-04-26 | rustc_target: move in syntax::abi and flip dependency. | Irina Popa | -1/+1 | |
| 2018-04-23 | Don't allow #[should_panic] with non-() tests | Russell Cohen | -27/+40 | |
| 2018-04-06 | Use `Ident` instead of `Name` in `MetaItem` | Vadim Petrochenkov | -4/+4 | |
