aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8122bors[bot]2021-03-218-14/+36
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8122: Make bare underscore token an Ident rather than Punct in proc-macro r=edwin0cheng a=kevinmehall In rustc and proc-macro2, a bare `_` token is parsed for procedural macro purposes as `Ident` rather than `Punct` (see https://github.com/rust-lang/rust/pull/48842). This changes rust-analyzer to match rustc's behavior and implementation by handling `_` as an Ident in token trees, but explicitly preventing `$x:ident` from matching it in MBE. proc macro crate: ```rust #[proc_macro] pub fn input(input: proc_macro::TokenStream) -> proc_macro::TokenStream { dbg!(input) } ``` test crate: ```rust test_proc_macro::input!(_); ``` output (rustc): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Ident { ident: "_", span: #0 bytes(173..174), }, ] ``` output (rust-analyzer before this change): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Punct { ch: '_', spacing: Joint, span: 4294967295, }, ] ``` output (rust-analyzer after this change): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Ident { ident: "_", span: 4294967295, }, ] ``` Co-authored-by: Kevin Mehall <[email protected]>
| * Fix and test edge cases of `_` as identKevin Mehall2021-03-203-3/+13
| |
| * Make bare underscore token an Ident rather than Punct in proc-macroKevin Mehall2021-03-206-12/+24
| |
* | Merge #8124bors[bot]2021-03-205-14/+233
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8124: Add basic lifetime completion r=Veykril a=Veykril This adds basic lifetime completion, basic in the sense that the completions for lifetimes are only shown when the user enters `'` followed by a char. Showing them when nothing is entered is kind of a pain, as we would want them to only show up where they are useful which in turn requires a lot of tree traversal and cursor position checking to verify whether the position is valid for a lifetime. This in itself doesn't seem too bad as usually when you know you want to write a lifetime putting `'` to ask for lifetime completions seems fine. ~~I'll take a look at whether its possible to lift the restriction of having to put a char after `'`.~~ This actually already works so I guess this is the clients responsibility, in which case VSCode doesn't like it. ![TYH9gIlyVo](https://user-images.githubusercontent.com/3757771/111886437-c9b02f80-89cd-11eb-9bee-340f1536b0de.gif) Co-authored-by: Lukas Wirth <[email protected]>
| * | Add basic lifetime completionLukas Wirth2021-03-205-14/+233
| |/
* / Don't use an untyped String for ActiveParam trackingLukas Wirth2021-03-205-24/+44
|/
* Merge #8119bors[bot]2021-03-204-12/+10
|\ | | | | | | | | | | | | | | 8119: Don't return a SourceChange on WillRenameFiles when nothing gets refactored r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Don't return a SourceChange on WillRenameFiles when nothing gets refactoredLukas Wirth2021-03-202-8/+7
| |
| * Fix add_life_to_type label typoLukas Wirth2021-03-202-4/+3
| |
* | Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-2014-91/+130
| | | | | | | | This includes starting to make use of Chalk's `Cast` trait.
* | Remove WhereClause::ErrorFlorian Diebold2021-03-207-42/+8
| | | | | | | | | | Chalk doesn't have it, and judging from the removed code, it wasn't useful anyway.
* | Rename GenericPredicate -> WhereClauseFlorian Diebold2021-03-2010-105/+89
| |
* | Add `AttrsWithOwner` and clean up `source_map`Jonas Schievink2021-03-195-155/+216
| |
* | Move `AttrsOwnerNode` to syntax and make it publicJonas Schievink2021-03-193-33/+33
| |
* | Return `Either` from `MacroDefId::ast_id`Jonas Schievink2021-03-194-18/+15
| |
* | Merge #8110bors[bot]2021-03-191-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8110: simplify r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | simplifyAleksey Kladov2021-03-191-3/+3
| | | | | | | | | | | | changelog skip
* | | Merge #8109bors[bot]2021-03-192-40/+66
|\| | | | | | | | | | | | | | | | | | | | | | | | | | 8109: Make ast editing more ergonomic r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Make ast editing more ergonomicAleksey Kladov2021-03-192-40/+66
| |/ | | | | | | changelog internal
* / Fix handling of `#![cfg]` in outline module fileJonas Schievink2021-03-192-21/+48
|/
* Add builtin macro-like attributesJonas Schievink2021-03-191-2/+5
|
* Rename derive-specific APIsJonas Schievink2021-03-195-13/+13
|
* Cleanup qualify_pathLukas Wirth2021-03-191-27/+17
|
* Merge #8097bors[bot]2021-03-195-38/+29
|\ | | | | | | | | | | | | | | 8097: Parse extended_key_value_attributes r=jonas-schievink a=Veykril Companion PR https://github.com/rust-analyzer/ungrammar/pull/31 Co-authored-by: Lukas Wirth <[email protected]>
| * Parse extended_key_value_attributesLukas Wirth2021-03-195-38/+29
| |
* | Merge #8101bors[bot]2021-03-1910-131/+221
|\ \ | | | | | | | | | | | | | | | | | | | | | 8101: Replace Projection variant in GenericPredicate with AliasEq r=flodiebold a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Replace Projection variant in GenericPredicate with AliasEqLukas Wirth2021-03-1910-131/+221
| | |
* | | Document fields of `ModuleId`Jonas Schievink2021-03-181-1/+5
|/ /
* | Merge #8095bors[bot]2021-03-182-3/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | 8095: Fix associated items not being appended to paths in import_assets r=SomeoneToIgnore a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix associated items not being appended to paths in import_assetsLukas Wirth2021-03-182-3/+40
| |/
* | Use a highlight modifier for intra doc linksLukas Wirth2021-03-1814-31/+55
| |
* | Chalkify TraitRefFlorian Diebold2021-03-1815-73/+99
| |
* | Merge #8083bors[bot]2021-03-183-26/+76
|\ \ | | | | | | | | | | | | | | | | | | | | | 8083: Track source file IDs in source mapping of Attrs r=jonas-schievink a=Veykril Fixes the panics/incorrect injection highlighting of outline module declarations until we figure out a nicer source mapping strategy for attributes. Co-authored-by: Lukas Wirth <[email protected]>
| * | Track source file IDs in source mapping of AttrsLukas Wirth2021-03-183-26/+76
| | |
* | | Merge #8094bors[bot]2021-03-181-1/+14
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8094: Fix infinite recursion when computing diagnostics for inner items r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Fix infinite recursion when computing diagnostics for inner itemsJonas Schievink2021-03-181-1/+14
| | | |
* | | | Add testJonas Schievink2021-03-181-0/+26
| | | |
* | | | Record custom derive helpers in `DefMap`Jonas Schievink2021-03-183-25/+91
|/ / / | | | | | | | | | Also clean up proc macro attribute parsing a bit
* | | Add test for goto def on proc macro invocationJonas Schievink2021-03-181-0/+17
| | |
* | | Store an `AstId` for procedural macrosJonas Schievink2021-03-1811-26/+47
| | |
* | | Make MacroDefId's `AstId` mandatory when possibleJonas Schievink2021-03-1813-55/+58
| |/ |/|
* | Create AstId for builtin_derive macro in testsJonas Schievink2021-03-181-13/+28
| |
* | Merge #8082bors[bot]2021-03-183-0/+34
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 8082: Proper handle inner recursive macro rules cases r=edwin0cheng a=edwin0cheng Fixes #7645 cc @jonas-schievink bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * Handle inner recursive macro rules casesEdwin Cheng2021-03-183-0/+34
| |
* | Merge #8081bors[bot]2021-03-183-1959/+1952
|\ \ | | | | | | | | | | | | | | | | | | | | | 8081: Reorganize mbe tests r=edwin0cheng a=edwin0cheng bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | Reorganize mbe testsEdwin Cheng2021-03-183-1959/+1952
| |/
* | Rename `item_tree` query to `file_item_tree`Jonas Schievink2021-03-187-16/+16
| |
* | Make `ItemTreeId` its own typeJonas Schievink2021-03-188-37/+77
| |
* | Avoid cloning `CfgOptions`Jonas Schievink2021-03-181-2/+3
| |
* | Support `#[cfg]` on all associated itemsJonas Schievink2021-03-182-5/+24
| |