Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add basic bultin macro infrastructure | Edwin Cheng | 2019-11-11 | 8 | -29/+148 |
| | |||||
* | Remove typed macro parsing API | Aleksey Kladov | 2019-11-09 | 5 | -72/+83 |
| | | | | | We do type-erasure on every path anyway, so it doesn't make much sense to duplicate this function for every type | ||||
* | Minor cleanup | Aleksey Kladov | 2019-11-09 | 1 | -6/+8 |
| | |||||
* | Merge #2169 | bors[bot] | 2019-11-09 | 8 | -101/+305 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | 2169: MBE: Mapping spans for goto definition r=matklad a=edwin0cheng Currently, go to definition gives the wrong span in MBE. This PR implement a mapping mechanism to fix it and it could be used for future MBE hygiene implementation. The basic idea of the mapping is: 1. When expanding the macro, generated 2 `TokenMap` which maps the macro args and macro defs between tokens and input text-ranges. 2. Before converting generated `TokenTree` to `SyntaxNode`, generated a `ExpandedRangeMap` which is a mapping between token and output text-ranges. 3. Using these 3 mappings to construct an `ExpansionInfo` which can map between input text ranges and output text ranges. Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Remove map_ranges in RevTokenMap | Edwin Cheng | 2019-11-09 | 4 | -66/+35 |
| | | |||||
| * | Refactor and simpfily | Edwin Cheng | 2019-11-08 | 5 | -89/+42 |
| | | |||||
| * | Refactor and add more comments | Edwin Cheng | 2019-11-08 | 2 | -58/+52 |
| | | |||||
| * | Fix formatting | Edwin Cheng | 2019-11-05 | 1 | -1/+1 |
| | | |||||
| * | Refactor a bit | Edwin Cheng | 2019-11-04 | 2 | -11/+7 |
| | | |||||
| * | Use macro_rules shift to map text ranges | Edwin Cheng | 2019-11-04 | 4 | -51/+26 |
| | | |||||
| * | Use ? and destructing to simplifed long code | Edwin Cheng | 2019-11-04 | 1 | -19/+17 |
| | | |||||
| * | Rename and fix typos | Edwin Cheng | 2019-11-04 | 4 | -24/+43 |
| | | |||||
| * | Add note for recurseive macro generated code | Edwin Cheng | 2019-11-04 | 1 | -0/+1 |
| | | |||||
| * | Add tests | Edwin Cheng | 2019-11-04 | 1 | -0/+40 |
| | | |||||
| * | Use new expansion feature in goto_definition | Edwin Cheng | 2019-11-04 | 2 | -45/+114 |
| | | |||||
| * | Remove dbg! | Edwin Cheng | 2019-11-04 | 2 | -5/+0 |
| | | |||||
| * | Fixed bug in ExpandedRangeMap | Edwin Cheng | 2019-11-04 | 1 | -34/+16 |
| | | |||||
| * | Add parent_expansion to HirFileId | Edwin Cheng | 2019-11-04 | 1 | -0/+19 |
| | | |||||
| * | Add macro_expansion_info in hir_expand | Edwin Cheng | 2019-11-04 | 5 | -47/+212 |
| | | |||||
| * | Add map_id to TokenId | Edwin Cheng | 2019-11-04 | 2 | -5/+34 |
| | | |||||
* | | Touch up nameres doc comment | Aleksey Kladov | 2019-11-08 | 1 | -7/+6 |
| | | |||||
* | | Reduce visibility | Aleksey Kladov | 2019-11-08 | 1 | -9/+9 |
| | | |||||
* | | Extract path resolution submodule | Aleksey Kladov | 2019-11-08 | 3 | -243/+269 |
| | | |||||
* | | Simplify | Aleksey Kladov | 2019-11-08 | 2 | -7/+5 |
| | | | | | | | | | | There's only one call-site for the function, so it seems fine to inline | ||||
* | | Reduce visibility | Aleksey Kladov | 2019-11-08 | 1 | -23/+23 |
| | | |||||
* | | Update crates | kjeremy | 2019-11-07 | 2 | -3/+3 |
| | | | | | | | | | | | | | | Removes nodrop and extra arrayvec We have an extra crossbeam-queue and crossbeam-utils left but those should drop once rayon accepts https://github.com/rayon-rs/rayon/pull/704 | ||||
* | | cargo xtask format with 1.39 | kjeremy | 2019-11-07 | 1 | -3/+3 |
| | | |||||
* | | Merge #2179 | bors[bot] | 2019-11-06 | 5 | -14/+111 |
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2179: Use HirDatabase to compute `is_deprecated` r=matklad a=martskins This PR fixes #2167 by introducing `attributes_query` and adding `fn attrs(&self, def: crate::AttrDef) -> Option<Arc<[Attr]>>;` to the `DefDatabase` trait. I'm a little concerned about the two spots in `attributes_query` where code is repeated, but I couldn't figure out a way to avoid that, so.. I welcome suggestions :smile: Co-authored-by: Martin Asquino <[email protected]> | ||||
| * | | HirDatabase stored attributes | Martin Asquino | 2019-11-04 | 5 | -14/+111 |
| | | | |||||
* | | | Cleanup complete_postfix | Aleksey Kladov | 2019-11-06 | 1 | -52/+57 |
| | | | |||||
* | | | Bump psm, console, indicatif | kjeremy | 2019-11-05 | 1 | -1/+1 |
| | | | |||||
* | | | Reduce visibility | Aleksey Kladov | 2019-11-04 | 1 | -2/+2 |
| | | | |||||
* | | | Move Namespace enum closer to usage | Aleksey Kladov | 2019-11-04 | 9 | -26/+29 |
| | | | |||||
* | | | Appease the linter by dummy doc comments | Aleksey Kladov | 2019-11-04 | 2 | -1/+3 |
| | | | |||||
* | | | Simplify | Aleksey Kladov | 2019-11-04 | 1 | -35/+24 |
| | | | |||||
* | | | Restore assists tests | Aleksey Kladov | 2019-11-04 | 3 | -4/+50 |
| | | | |||||
* | | | Rename MockDatabase -> TestDB | Aleksey Kladov | 2019-11-04 | 6 | -60/+57 |
| | | | | | | | | | | | | Actually working rename is sooo useful! | ||||
* | | | remove dead code | Aleksey Kladov | 2019-11-04 | 1 | -26/+7 |
| | | | |||||
* | | | Remove more duplication in test fixtures | Aleksey Kladov | 2019-11-04 | 5 | -62/+18 |
| | | | |||||
* | | | Remove some duplicated test functions | Aleksey Kladov | 2019-11-04 | 1 | -81/+16 |
| | | | |||||
* | | | Reduce visibility | Aleksey Kladov | 2019-11-04 | 2 | -6/+10 |
| |/ |/| | |||||
* | | Merge #2173 | bors[bot] | 2019-11-04 | 2 | -2/+70 |
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2173: MBE: Add TokenId shift in macro_rules r=matklad a=edwin0cheng As discussed in #2169 , for fixing duplication TokenId during expansion : > What we can do here is to re-number the tokens during expansion. Specifically: > * when we create macro_rules, we note the highest id of the token we have as shift> > * when we expand macro rules, if we need to output a token from definition, we just re-use its id > * if we need to output a token from the argument, we increase its id by shift (so it's guaranteed to not to collide with anything from the definition) > * finally, when we have a HirFileId of the expansion, we can look up the original value of shift and classify node to the arg/def by comparing it's id with shift. > This PR implement first 3 points of above solution. Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Change to add 1 if non zero shift | Edwin Cheng | 2019-11-04 | 1 | -1/+1 |
| | | |||||
| * | Refactor and rename | Edwin Cheng | 2019-11-04 | 1 | -21/+20 |
| | | |||||
| * | Change Option<u32> to u32 for shift value | Edwin Cheng | 2019-11-04 | 1 | -8/+5 |
| | | |||||
| * | Change to better naming | Edwin Cheng | 2019-11-04 | 1 | -3/+3 |
| | | |||||
| * | Add TokenId Shif in macro_rules | Edwin Cheng | 2019-11-04 | 2 | -2/+74 |
| | | |||||
* | | Merge #2172 | bors[bot] | 2019-11-04 | 3 | -138/+25 |
|\ \ | | | | | | | | | | | | | | | | | | | | | | 2172: Use new text DSL instead of crate_graph! macro r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]> | ||||
| * | | Cleanup unused marks | Aleksey Kladov | 2019-11-04 | 1 | -10/+0 |
| | | | |||||
| * | | Use new text DSL instead of crate_graph! macro | Aleksey Kladov | 2019-11-04 | 3 | -128/+25 |
| | | |