| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-07-27 | Move test harness generation into libsyntax_ext | Vadim Petrochenkov | -424/+0 | |
| 2019-07-23 | Normalize use of backticks in compiler messages for libsyntax/* | Samy Kacimi | -1/+1 | |
| https://github.com/rust-lang/rust/issues/60532 | ||||
| 2019-07-19 | Adjust other names after the `Mark` renaming | Vadim Petrochenkov | -1/+1 | |
| 2019-07-19 | libsyntax: Remove `Mark` into `ExpnId` | Vadim Petrochenkov | -2/+2 | |
| 2019-07-11 | hygiene: Introduce a helper method for creating new expansions | Vadim Petrochenkov | -18/+5 | |
| Creating a fresh expansion and immediately generating a span from it is the most common scenario. Also avoid allocating `allow_internal_unstable` lists for derive markers repeatedly. And rename `ExpnInfo::with_unstable` to `ExpnInfo::allow_unstable`, seems to be a better fitting name. | ||||
| 2019-07-11 | hygiene: Reuse `MacroKind` in `ExpnKind` | Vadim Petrochenkov | -2/+2 | |
| Orthogonality and reuse are good. | ||||
| 2019-07-11 | Rename some things in `syntax_pos/hygiene` | Vadim Petrochenkov | -2/+2 | |
| More consistent with other naming: ExpnFormat -> ExpnKind ExpnKind::name -> ExpnKind::descr DesugaringKind::name -> DesugaringKind::descr Shorter, no tautology: CompilerDesugaring -> Desugaring CompilerDesugaringKind -> DesugaringKind | ||||
| 2019-07-05 | Auto merge of #62099 - Mark-Simulacrum:syntax-print-clean-2, r=eddyb | bors | -1/+0 | |
| Remove io::Result from syntax::print Since we're now writing directly to the vector, there's no need to thread results through the whole printing infrastructure | ||||
| 2019-07-01 | Convert more usages over | Chris Gregory | -2/+2 | |
| 2019-06-29 | Remove unused import | Mark Rousskov | -1/+0 | |
| 2019-06-18 | syntax: Introduce `default`/`with_unstable` constructors for `ExpnInfo` | Vadim Petrochenkov | -9/+4 | |
| 2019-06-18 | syntax: Factor out common fields from `SyntaxExtension` variants | Vadim Petrochenkov | -1/+1 | |
| 2019-06-14 | Avoid some unnecessary symbol interner operations | Matthew Jasper | -2/+2 | |
| 2019-05-27 | Avoid unnecessary internings. | Nicholas Nethercote | -8/+4 | |
| Most involving `Symbol::intern` on string literals. | ||||
| 2019-05-22 | Restore the old behavior of the rustdoc keyword check + Fix rebase | Vadim Petrochenkov | -1/+1 | |
| 2019-05-22 | Simplify use of keyword symbols | Vadim Petrochenkov | -3/+3 | |
| 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 | |
