| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-02-22 | Remove type-traversal trait aliases | Alan Egerton | -5/+5 | |
| 2023-02-13 | Move folding and visiting traits into type library | Alan Egerton | -170/+4 | |
| 2023-02-13 | Make atomic structural impls generic over Interner | Alan Egerton | -8/+32 | |
| 2023-02-13 | Make folding traits generic over the Interner | Alan Egerton | -2/+2 | |
| 2023-02-13 | Make visiting traits generic over the Interner | Alan Egerton | -2/+2 | |
| 2023-02-13 | Alias folding/visiting traits instead of re-export | Alan Egerton | -8/+8 | |
| 2023-01-17 | Stop using `BREAK` & `CONTINUE` in compiler | Scott McMurray | -4/+4 | |
| Switching them to `Break(())` and `Continue(())` instead. libs-api would like to remove these constants, so stop using them in compiler to make the removal PR later smaller. | ||||
| 2022-12-30 | Add some docs to `bug`, `span_bug` and `delay_span_bug` | Nilstrieb | -0/+18 | |
| 2022-10-17 | add inline to `TrivialTypeTraversalImpls` | lcnr | -2/+11 | |
| 2022-07-05 | impl TypeVisitable in type traversal macros | Alan Egerton | -18/+28 | |
| 2022-06-08 | Folding revamp. | Nicholas Nethercote | -4/+4 | |
| This commit makes type folding more like the way chalk does it. Currently, `TypeFoldable` has `fold_with` and `super_fold_with` methods. - `fold_with` is the standard entry point, and defaults to calling `super_fold_with`. - `super_fold_with` does the actual work of traversing a type. - For a few types of interest (`Ty`, `Region`, etc.) `fold_with` instead calls into a `TypeFolder`, which can then call back into `super_fold_with`. With the new approach, `TypeFoldable` has `fold_with` and `TypeSuperFoldable` has `super_fold_with`. - `fold_with` is still the standard entry point, *and* it does the actual work of traversing a type, for all types except types of interest. - `super_fold_with` is only implemented for the types of interest. Benefits of the new model. - I find it easier to understand. The distinction between types of interest and other types is clearer, and `super_fold_with` doesn't exist for most types. - With the current model is easy to get confused and implement a `super_fold_with` method that should be left defaulted. (Some of the precursor commits fixed such cases.) - With the current model it's easy to call `super_fold_with` within `TypeFolder` impls where `fold_with` should be called. The new approach makes this mistake impossible, and this commit fixes a number of such cases. - It's potentially faster, because it avoids the `fold_with` -> `super_fold_with` call in all cases except types of interest. A lot of the time the compile would inline those away, but not necessarily always. | ||||
| 2021-12-02 | Rename TypeFolderFallible to FallibleTypeFolder | Alan Egerton | -2/+2 | |
| 2021-12-02 | Reduce boilerplate around infallible folders | Alan Egerton | -3/+3 | |
| 2021-11-26 | Make `TypeFoldable` implementors short-circuit on error | LeSeulArtichaut | -7/+7 | |
| Co-authored-by: Alan Egerton <eggyal@gmail.com> | ||||
| 2020-11-17 | Auto merge of #78779 - LeSeulArtichaut:ty-visitor-return, r=oli-obk | bors | -2/+2 | |
| Introduce `TypeVisitor::BreakTy` Implements MCP rust-lang/compiler-team#383. r? `@ghost` cc `@lcnr` `@oli-obk` ~~Blocked on FCP in rust-lang/compiler-team#383.~~ | ||||
| 2020-11-16 | words | lcnr | -4/+4 | |
| 2020-11-16 | compiler: fold by value | Bastian Kauschke | -3/+3 | |
| 2020-11-14 | Introduce `TypeVisitor::BreakTy` | LeSeulArtichaut | -2/+2 | |
| 2020-10-30 | Remove implicit `Continue` type | LeSeulArtichaut | -2/+2 | |
| 2020-10-30 | TypeVisitor: use `std::ops::ControlFlow` instead of `bool` | LeSeulArtichaut | -8/+10 | |
| 2020-10-21 | Lift: take self by value | Bastian Kauschke | -2/+2 | |
| 2020-08-30 | mv compiler to compiler/ | mark | -0/+220 | |
