]>
git.lizzy.rs Git - rust.git/log
Matthias Krüger [Sun, 21 Mar 2021 12:13:34 +0000 (13:13 +0100)]
clippy::complexity simplifications related to Iterators
Matthias Krüger [Sun, 21 Mar 2021 11:49:40 +0000 (12:49 +0100)]
xtask: remove redundant lifetime (clippy::extra_unused_lifetimes)
Matthias Krüger [Sun, 21 Mar 2021 11:38:21 +0000 (12:38 +0100)]
use strip_prefix() instead of starts_with and slicing (clippy::manual_strip)
Matthias Krüger [Sun, 21 Mar 2021 11:05:08 +0000 (12:05 +0100)]
remove more redundant clones (clippy::redundant_clone())
bors[bot] [Sun, 21 Mar 2021 09:51:06 +0000 (09:51 +0000)]
Merge #8131
8131: Do smart case fuzzy search during flyimports r=SomeoneToIgnore a=SomeoneToIgnore
For now, last actionable part of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/autoimport.20weirdness
Should help https://github.com/rust-analyzer/rust-analyzer/issues/7902
Now during the flyimport completion, if the input is searched case-sensitively, if the input contains any non-lowercase letters; otherwise the lookup done as before, case-insensitively.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Kirill Bulatov [Sat, 20 Mar 2021 22:50:59 +0000 (00:50 +0200)]
Fix the profile string
Kirill Bulatov [Sat, 20 Mar 2021 22:17:09 +0000 (00:17 +0200)]
Less reallocations
Kirill Bulatov [Sat, 20 Mar 2021 21:55:16 +0000 (23:55 +0200)]
Use smart case in flyimport items lookup
bors[bot] [Sun, 21 Mar 2021 09:37:08 +0000 (09:37 +0000)]
Merge #8123
8123: Do not display unqualified assoc item completions r=SomeoneToIgnore a=SomeoneToIgnore
Part of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/autoimport.20weirdness
Removes all flyimport completions for any unqualified associated type, effectively reverting https://github.com/rust-analyzer/rust-analyzer/pull/8095
I've explained the reasoning in the corresponding FIXME and open to discussions.
As an alternative way, we could add yet another parameter in the method that's used by the `qualify_path` and enable it for the qualify assists only.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
bors[bot] [Sun, 21 Mar 2021 08:21:52 +0000 (08:21 +0000)]
Merge #8130
8130: Revert "Temporarily run git describe on CI to debug #8043" r=lnicola a=lnicola
Reverts rust-analyzer/rust-analyzer#8121
bors r+
changelog skip
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
Laurențiu Nicola [Sun, 21 Mar 2021 08:21:29 +0000 (10:21 +0200)]
Revert "Temporarily run git describe on CI to debug #8043"
bors[bot] [Sun, 21 Mar 2021 00:29:15 +0000 (00:29 +0000)]
Merge #8127
8127: Add label completion r=Veykril a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sun, 21 Mar 2021 00:10:59 +0000 (01:10 +0100)]
Fix incorrect scoping in while expressions
bors[bot] [Sun, 21 Mar 2021 00:10:14 +0000 (00:10 +0000)]
Merge #8122
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 <km@kevinmehall.net>
Lukas Wirth [Sun, 21 Mar 2021 00:00:09 +0000 (01:00 +0100)]
Add label completion
Lukas Wirth [Sat, 20 Mar 2021 23:59:45 +0000 (00:59 +0100)]
Track labels in scopes
Kevin Mehall [Sat, 20 Mar 2021 23:43:51 +0000 (17:43 -0600)]
Fix and test edge cases of `_` as ident
bors[bot] [Sat, 20 Mar 2021 22:32:25 +0000 (22:32 +0000)]
Merge #8124
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 <lukastw97@gmail.com>
Lukas Wirth [Sat, 20 Mar 2021 21:43:42 +0000 (22:43 +0100)]
Add basic lifetime completion
bors[bot] [Sat, 20 Mar 2021 22:23:50 +0000 (22:23 +0000)]
Merge #8125
8125: Don't use an untyped String for ActiveParam tracking r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sat, 20 Mar 2021 22:22:09 +0000 (23:22 +0100)]
Don't use an untyped String for ActiveParam tracking
Kirill Bulatov [Sat, 20 Mar 2021 21:04:28 +0000 (23:04 +0200)]
Disable unqualified assoc items completion for now
Kirill Bulatov [Sat, 20 Mar 2021 20:54:04 +0000 (22:54 +0200)]
Docs
Kirill Bulatov [Sat, 20 Mar 2021 13:02:52 +0000 (15:02 +0200)]
Do not query item search by name eagerly
Kirill Bulatov [Sat, 20 Mar 2021 09:04:01 +0000 (11:04 +0200)]
Do not propose assoc items without qualifiers
Kevin Mehall [Sat, 20 Mar 2021 18:18:57 +0000 (12:18 -0600)]
Make bare underscore token an Ident rather than Punct in proc-macro
bors[bot] [Sat, 20 Mar 2021 17:13:03 +0000 (17:13 +0000)]
Merge #8121
8121: Temporarily run git describe on CI to debug #8043 r=lnicola a=lnicola
bors r+
changelog skip
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Sat, 20 Mar 2021 17:12:19 +0000 (19:12 +0200)]
Temporarily run git describe to debug #8043
bors[bot] [Sat, 20 Mar 2021 12:58:28 +0000 (12:58 +0000)]
Merge #8119
8119: Don't return a SourceChange on WillRenameFiles when nothing gets refactored r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sat, 20 Mar 2021 12:44:39 +0000 (13:44 +0100)]
Don't return a SourceChange on WillRenameFiles when nothing gets refactored
Lukas Wirth [Sat, 20 Mar 2021 12:44:12 +0000 (13:44 +0100)]
Fix add_life_to_type label typo
bors[bot] [Sat, 20 Mar 2021 11:47:50 +0000 (11:47 +0000)]
Merge #8117
8117: Turn Obligation into something similar to chalk_ir::DomainGoal r=flodiebold a=flodiebold
This includes starting to make use of Chalk's `Cast` trait.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 20 Mar 2021 10:23:59 +0000 (11:23 +0100)]
Turn Obligation into something similar to chalk_ir::DomainGoal
This includes starting to make use of Chalk's `Cast` trait.
bors[bot] [Sat, 20 Mar 2021 10:23:55 +0000 (10:23 +0000)]
Merge #8116
8116: Remove WhereClause::Error r=flodiebold a=flodiebold
Chalk doesn't have it, and judging from the removed code, it wasn't useful anyway.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 20 Mar 2021 09:51:00 +0000 (10:51 +0100)]
Remove WhereClause::Error
Chalk doesn't have it, and judging from the removed code, it wasn't
useful anyway.
bors[bot] [Sat, 20 Mar 2021 09:47:46 +0000 (09:47 +0000)]
Merge #8115
8115: Rename GenericPredicate -> WhereClause r=flodiebold a=flodiebold
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 20 Mar 2021 09:46:36 +0000 (10:46 +0100)]
Rename GenericPredicate -> WhereClause
bors[bot] [Fri, 19 Mar 2021 21:20:43 +0000 (21:20 +0000)]
Merge #8112
8112: Revamp `hir_def` attribute API r=Veykril a=jonas-schievink
This adds `AttrsWithOwner`, which can construct an accurate `AttrSourceMap` without requiring additional information from the caller.
r? @Veykril
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 19 Mar 2021 20:23:57 +0000 (21:23 +0100)]
Add `AttrsWithOwner` and clean up `source_map`
Jonas Schievink [Fri, 19 Mar 2021 18:42:06 +0000 (19:42 +0100)]
Move `AttrsOwnerNode` to syntax and make it public
bors[bot] [Fri, 19 Mar 2021 18:56:38 +0000 (18:56 +0000)]
Merge #8111
8111: Return `Either` from `MacroDefId::ast_id` r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 19 Mar 2021 18:56:13 +0000 (19:56 +0100)]
Return `Either` from `MacroDefId::ast_id`
bors[bot] [Fri, 19 Mar 2021 18:01:34 +0000 (18:01 +0000)]
Merge #8110
8110: simplify r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Fri, 19 Mar 2021 18:00:20 +0000 (21:00 +0300)]
simplify
changelog skip
bors[bot] [Fri, 19 Mar 2021 17:54:30 +0000 (17:54 +0000)]
Merge #8109
8109: Make ast editing more ergonomic r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Fri, 19 Mar 2021 17:46:18 +0000 (20:46 +0300)]
Make ast editing more ergonomic
changelog internal
bors[bot] [Fri, 19 Mar 2021 17:25:09 +0000 (17:25 +0000)]
Merge #8108
8108: Fix handling of `#![cfg]` in outline module file r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 19 Mar 2021 17:24:04 +0000 (18:24 +0100)]
Fix handling of `#![cfg]` in outline module file
bors[bot] [Fri, 19 Mar 2021 13:34:46 +0000 (13:34 +0000)]
Merge #8106
8106: Add builtin macro-like attributes r=jonas-schievink a=jonas-schievink
We also have to know about these to resolve them
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 19 Mar 2021 13:33:31 +0000 (14:33 +0100)]
Add builtin macro-like attributes
bors[bot] [Fri, 19 Mar 2021 13:23:56 +0000 (13:23 +0000)]
Merge #8104
8104: Rename derive-specific APIs r=jonas-schievink a=jonas-schievink
Indicate that they're derive-specific
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Fri, 19 Mar 2021 13:23:13 +0000 (14:23 +0100)]
Rename derive-specific APIs
bors[bot] [Fri, 19 Mar 2021 12:13:21 +0000 (12:13 +0000)]
Merge #8102
8102: Cleanup qualify_path r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Fri, 19 Mar 2021 12:12:00 +0000 (13:12 +0100)]
Cleanup qualify_path
bors[bot] [Fri, 19 Mar 2021 11:38:40 +0000 (11:38 +0000)]
Merge #8097
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 <lukastw97@gmail.com>
bors[bot] [Fri, 19 Mar 2021 11:12:54 +0000 (11:12 +0000)]
Merge #8101
8101: Replace Projection variant in GenericPredicate with AliasEq r=flodiebold a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Fri, 19 Mar 2021 01:07:15 +0000 (02:07 +0100)]
Replace Projection variant in GenericPredicate with AliasEq
Lukas Wirth [Thu, 18 Mar 2021 21:25:10 +0000 (22:25 +0100)]
Parse extended_key_value_attributes
bors[bot] [Thu, 18 Mar 2021 23:07:41 +0000 (23:07 +0000)]
Merge #8099
8099: Document fields of `ModuleId` r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 23:06:35 +0000 (00:06 +0100)]
Document fields of `ModuleId`
bors[bot] [Thu, 18 Mar 2021 21:40:12 +0000 (21:40 +0000)]
Merge #8095
8095: Fix associated items not being appended to paths in import_assets r=SomeoneToIgnore a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
bors[bot] [Thu, 18 Mar 2021 21:32:34 +0000 (21:32 +0000)]
Merge #8086
8086: Use a highlight modifier for intra doc links r=Veykril a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Thu, 18 Mar 2021 14:22:27 +0000 (15:22 +0100)]
Use a highlight modifier for intra doc links
bors[bot] [Thu, 18 Mar 2021 20:54:24 +0000 (20:54 +0000)]
Merge #8096
8096: Chalkify TraitRef r=flodiebold a=flodiebold
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Thu, 18 Mar 2021 20:53:19 +0000 (21:53 +0100)]
Chalkify TraitRef
Lukas Wirth [Thu, 18 Mar 2021 20:36:52 +0000 (21:36 +0100)]
Fix associated items not being appended to paths in import_assets
bors[bot] [Thu, 18 Mar 2021 19:26:10 +0000 (19:26 +0000)]
Merge #8083
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 <lukastw97@gmail.com>
bors[bot] [Thu, 18 Mar 2021 19:16:05 +0000 (19:16 +0000)]
Merge #8094
8094: Fix infinite recursion when computing diagnostics for inner items r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 19:15:06 +0000 (20:15 +0100)]
Fix infinite recursion when computing diagnostics for inner items
bors[bot] [Thu, 18 Mar 2021 19:05:20 +0000 (19:05 +0000)]
Merge #8093
8093: Record custom derive helpers in `DefMap` r=jonas-schievink a=jonas-schievink
Also clean up proc macro attribute parsing a bit
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 19:04:20 +0000 (20:04 +0100)]
Add test
Jonas Schievink [Thu, 18 Mar 2021 18:56:37 +0000 (19:56 +0100)]
Record custom derive helpers in `DefMap`
Also clean up proc macro attribute parsing a bit
bors[bot] [Thu, 18 Mar 2021 16:24:38 +0000 (16:24 +0000)]
Merge #8091
8091: Add test for goto def on proc macro invocation r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7073
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 16:23:51 +0000 (17:23 +0100)]
Add test for goto def on proc macro invocation
bors[bot] [Thu, 18 Mar 2021 15:58:05 +0000 (15:58 +0000)]
Merge #8089
8089: Update info about Eclipse Corrosion r=matklad a=mickaelistria
Co-authored-by: Mickael Istria <mistria@redhat.com>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Thu, 18 Mar 2021 15:57:44 +0000 (18:57 +0300)]
Update docs/user/manual.adoc
Mickael Istria [Thu, 18 Mar 2021 15:22:54 +0000 (16:22 +0100)]
Update info about Eclipse Corrosion
bors[bot] [Thu, 18 Mar 2021 15:13:03 +0000 (15:13 +0000)]
Merge #8088
8088: Store an `AstId` for procedural macros r=jonas-schievink a=jonas-schievink
Point `HasSource` to the `ast::Fn`, and go to it in `TryToNav`.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 15:11:18 +0000 (16:11 +0100)]
Store an `AstId` for procedural macros
bors[bot] [Thu, 18 Mar 2021 14:38:04 +0000 (14:38 +0000)]
Merge #8087
8087: Make MacroDefId's `AstId` mandatory when possible r=jonas-schievink a=jonas-schievink
This makes it clearer (in the type definition) which macros have or don't have an `AstId`
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 14:37:14 +0000 (15:37 +0100)]
Make MacroDefId's `AstId` mandatory when possible
bors[bot] [Thu, 18 Mar 2021 14:15:29 +0000 (14:15 +0000)]
Merge #8085
8085: Create AstId for builtin_derive macro in tests r=jonas-schievink a=jonas-schievink
This moves them closer to the builtin_macro tests
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 14:14:52 +0000 (15:14 +0100)]
Create AstId for builtin_derive macro in tests
bors[bot] [Thu, 18 Mar 2021 12:25:44 +0000 (12:25 +0000)]
Merge #8082
8082: Proper handle inner recursive macro rules cases r=edwin0cheng a=edwin0cheng
Fixes #7645
cc @jonas-schievink
bors r+
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Edwin Cheng [Thu, 18 Mar 2021 11:39:40 +0000 (19:39 +0800)]
Handle inner recursive macro rules cases
Lukas Wirth [Thu, 18 Mar 2021 12:16:27 +0000 (13:16 +0100)]
Track source file IDs in source mapping of Attrs
bors[bot] [Thu, 18 Mar 2021 09:23:54 +0000 (09:23 +0000)]
Merge #8081
8081: Reorganize mbe tests r=edwin0cheng a=edwin0cheng
bors r+
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Edwin Cheng [Thu, 18 Mar 2021 09:22:52 +0000 (17:22 +0800)]
Reorganize mbe tests
bors[bot] [Thu, 18 Mar 2021 00:57:48 +0000 (00:57 +0000)]
Merge #8080
8080: Change ItemTree API to accomodate creating an ItemTree per block expression r=jonas-schievink a=jonas-schievink
...which won't go through salsa because the AST is already cached anyways
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Sat, 13 Mar 2021 01:24:26 +0000 (02:24 +0100)]
Rename `item_tree` query to `file_item_tree`
Jonas Schievink [Fri, 12 Mar 2021 23:34:01 +0000 (00:34 +0100)]
Make `ItemTreeId` its own type
bors[bot] [Thu, 18 Mar 2021 00:43:18 +0000 (00:43 +0000)]
Merge #8079
8079: Avoid cloning `CfgOptions` r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 00:41:38 +0000 (01:41 +0100)]
Avoid cloning `CfgOptions`
bors[bot] [Thu, 18 Mar 2021 00:30:11 +0000 (00:30 +0000)]
Merge #8078
8078: Support `#[cfg]` on all associated items r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Thu, 18 Mar 2021 00:28:40 +0000 (01:28 +0100)]
Support `#[cfg]` on all associated items
bors[bot] [Wed, 17 Mar 2021 21:33:41 +0000 (21:33 +0000)]
Merge #8076
8076: Add test for self-calling inner function r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4438 (and duplicates)
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 17 Mar 2021 21:30:09 +0000 (22:30 +0100)]
Add test for self-calling inner function
bors[bot] [Wed, 17 Mar 2021 21:25:25 +0000 (21:25 +0000)]
Merge #8075
8075: Fix `use crate as <name>;` imports r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4644
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Jonas Schievink [Wed, 17 Mar 2021 21:24:51 +0000 (22:24 +0100)]
Fix `use crate as <name>;` imports
bors[bot] [Wed, 17 Mar 2021 20:56:37 +0000 (20:56 +0000)]
Merge #8073
8073: Improve diagnostic when including nonexistent file r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>