Lukas Wirth
e41b5348b8
replace_qualified_name_with_use
insert qualified import paths
2021-07-03 23:42:59 +02:00
bors[bot]
e73328f22a
Merge #9477
...
9477: fix: Don't show an import per namespace in auto_import r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9113
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-03 20:13:14 +00:00
Lukas Wirth
05ec824ab7
Don't show an import per namespace in auto_import
2021-07-03 22:11:01 +02:00
Lukas Wirth
6181154d50
Add some more inline_call
tests
2021-07-03 21:42:59 +02:00
Lukas Wirth
d308f17a21
Inline parameters in inline_call
if possible
2021-07-03 20:05:54 +02:00
bors[bot]
888bb6c452
Merge #9468
...
9468: feat: Make `inline_function` work on methods r=Veykril a=Veykril
Now called `inline_call`.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-03 16:13:06 +00:00
Lukas Wirth
14e18bfa38
Merge the inline function/method assists into inline_call
2021-07-03 18:07:03 +02:00
Lukas Wirth
9c923068fb
Don't hide meta lines
2021-07-03 12:16:07 +02:00
Lukas Wirth
688398febc
feat: Implement inline_method
assist
2021-07-03 01:33:34 +02:00
Lukas Wirth
fbdcb49d48
Simplify
2021-07-03 01:31:41 +02:00
Lukas Wirth
26dd0c4e5b
wrap_return_type_in_result works on the HIR
2021-07-02 23:19:32 +02:00
Lukas Wirth
eb3f90b301
Don't check sad pattern equality by text
2021-07-02 21:10:44 +02:00
Lukas Wirth
251f0c6090
replace_match_with_if_let
works on more binary matches
2021-07-02 21:05:10 +02:00
Lukas Wirth
f1819525f5
Simplify
2021-07-02 19:50:37 +02:00
bors[bot]
d18cfd4467
Merge #9458
...
9458: minor: Remove make::match_arm_with_guard r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-01 23:47:38 +00:00
Lukas Wirth
071ac48b6c
Remove make::match_arm_with_guard
2021-07-02 01:44:54 +02:00
bors[bot]
cd3d633850
Merge #9455
...
9455: feat: Handle not let if expressions in replace_if_let_with_match r=Veykril a=Veykril
Transforms bare `if cond {}` into `_ if cond` guard patterns in the match as long as at least one `if let` is in the if chain, otherwise the assist wont be applicable.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-01 23:00:50 +00:00
Lukas Wirth
8967856d78
Handle not let if expressions in replace_if_let_with_match
2021-07-02 00:58:56 +02:00
bors[bot]
51d85e1060
Merge #9454
...
9454: feat: Empower `replace_if_let_with_match` r=Veykril a=Veykril
Now instead of only working on `if let ... {} else {}` if expressions it now works on all of them where the condition expression is the same text-wise.
This includes if let expressions without an else block, in which case a simple `_ => ()` will be generated in the resulting match but also in more complex cases where multiple `if let` expressions are chained.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-01 22:24:17 +00:00
Lukas Wirth
20be999304
Empower replace_if_let_with_match
2021-07-02 00:21:21 +02:00
bors[bot]
564fa0146e
Merge #9450
...
9450: internal: Add ModuleOrItem guess to import granularity guessing r=Veykril a=Veykril
I think this should be the last fix needed for this(🤞 )
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-01 19:33:53 +00:00
Lukas Wirth
3d2490ca97
Simplify
2021-07-01 21:10:45 +02:00
Lukas Wirth
04f1104179
Don't classify NameRef paths inside attribute TokenTrees
2021-06-30 21:51:28 +02:00
Lukas Wirth
3ce5c66ca1
Deduplicate ast expression walking logic
2021-06-27 01:11:57 +02:00
Daiki Ihara
873aa904f2
Fix var name
2021-06-21 22:47:39 +09:00
Daiki Ihara
7a04f72220
Fix pointed out
2021-06-21 18:42:25 +09:00
Daiki Ihara
cd1ef8de18
Fix extract_function with await
2021-06-21 18:31:53 +09:00
Lukas Wirth
2113c46797
Cleanup insert_use tests
2021-06-19 22:33:29 +02:00
Lukas Wirth
344cb5e76a
Don't insert imports outside of cfg attributed items
2021-06-18 23:56:43 +02:00
bors[bot]
d9666ce509
Merge #9334
...
9334: feat: Allow to disable import insertion on single path glob imports r=Veykril a=Veykril
On by default as I feel like this is something the majority would prefer.
Closes #8490
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-18 21:23:22 +00:00
Lukas Wirth
2ee090faaf
Allow to disable import insertion on single path glob imports
2021-06-18 23:11:56 +02:00
Aleksey Kladov
3762cc7465
minor: use minicore
2021-06-18 23:59:47 +03:00
Aleksey Kladov
a9623f3165
minor: use minicore
2021-06-18 23:38:19 +03:00
Aleksey Kladov
181184a350
minor: use minicore
2021-06-18 23:28:37 +03:00
Aleksey Kladov
2e4df27132
minor: use minicore
2021-06-18 22:25:35 +03:00
Aleksey Kladov
15c4b3fa7f
internal: add Copy to minicore
2021-06-18 22:10:52 +03:00
Laurențiu Nicola
e3ce88f6f2
Minor clippy perf fixes
2021-06-18 14:40:51 +03:00
Aleksey Kladov
89c2dff58a
minor: simplify
2021-06-18 00:36:25 +03:00
Aleksey Kladov
ebb591a570
internal: add derive and ord support to minicore
2021-06-18 00:30:22 +03:00
Aleksey Kladov
ca99aaa053
internal: add From to minicore
2021-06-17 21:04:12 +03:00
Aleksey Kladov
08c220ab2c
internal: add default to minicore
2021-06-17 20:49:49 +03:00
Lukas Wirth
b6cb6d5abe
simplify
2021-06-17 17:58:26 +02:00
Lukas Wirth
95c8c65139
Nest all the or-patterns!
2021-06-17 17:37:14 +02:00
bors[bot]
3b58d8f785
Merge #9308
...
9308: fix: Create modules in correct directory for nested modules in move_module assist r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-17 10:10:25 +00:00
Lukas Wirth
cd5f4121e3
Create modules in correct directory for nested modules in move_module assist
2021-06-17 12:09:28 +02:00
Aleksey Kladov
a43bba760e
internal: switch some tests to minicore
2021-06-17 11:41:36 +03:00
Aleksey Kladov
c42cdff3d2
internal: minimize minicore
...
We want to keep minicore small, so let's split out iterator adapters and
sources into a separate `iterators` region, and use them only when
needed.
2021-06-17 11:28:44 +03:00
Aleksey Kladov
35772256f8
internal: cleanup tests
2021-06-16 23:27:46 +03:00
Aleksey Kladov
7ba5482a04
internal: switch some tests to minicore
2021-06-16 22:26:46 +03:00
Aleksey Kladov
7e0d441687
internal: switch some tests to minicore
2021-06-16 22:24:11 +03:00
Aleksey Kladov
4584868a7a
internal: don't #[ignore] tests
...
See the style.md for motivation
2021-06-15 16:37:58 +03:00
Aleksey Kladov
1e100e8b3e
internal: cleanup tests
...
* ensure standard, non-indented style (should add this check to
`fixture` some day)
* removed a couple of ignores
2021-06-15 12:48:05 +03:00
Aleksey Kladov
3f4ad44082
internal: document that we don't #[ignore] tests
2021-06-15 11:46:47 +03:00
Lukas Wirth
7cf273a18e
Don't keep a trailing self token in import paths after unmerge_use
2021-06-14 13:56:33 +02:00
bors[bot]
adbee621a7
Merge #9242
...
9242: Clippy r=matklad a=Maan2003
Best viewed commit wise
Co-authored-by: Maan2003 <manmeetmann2003@gmail.com>
2021-06-13 07:18:49 +00:00
bors[bot]
f107b0f1e2
Merge #9240
...
9240: Fixed a small typo in comment r=matklad a=fee1-dead
Co-authored-by: fee1-dead <ent3rm4n@gmail.com>
2021-06-13 06:58:37 +00:00
Maan2003
75370312fb
clippy::redundant_closure
2021-06-13 09:29:36 +05:30
Maan2003
c9b4ac5be4
clippy::redudant_borrow
2021-06-13 09:24:16 +05:30
bors[bot]
80b3b74018
Merge #9215
...
9215: change visibility for use and macro items r=jonas-schievink a=Maan2003
Co-authored-by: Maan2003 <manmeetmann2003@gmail.com>
2021-06-11 14:10:22 +00:00
fee1-dead
7ad8cd8232
Fixed a small typo in comment
2021-06-11 22:01:34 +08:00
Maan2003
4c1a02288c
change visibility for use and macro items
2021-06-11 19:10:56 +05:30
Maan2003
7f71000c12
Don't suggest Remove unused param in trait impls
2021-06-11 12:24:56 +05:30
Joshua Warner
9b74dd0c04
fmt
2021-06-05 17:09:56 -07:00
Joshua Warner
18f796a728
Refactor to be just one assist
2021-06-05 15:29:29 -07:00
Joshua Warner
ca9ffba047
Add assist for converting a tuple enum variant to a named variant
2021-06-04 21:48:32 -07:00
Lukas Wirth
1bd04d9064
Don't inline mutable locals in 'inline_local_variable'
2021-06-04 20:43:48 +02:00
Matthias Krüger
9452dfaac7
NFC: remove redundant clones (clippy::perf)
2021-06-03 15:32:46 +02:00
Jonas Schievink
6c0e58d107
Preserve indentation
2021-06-02 22:27:12 +02:00
Jonas Schievink
e4c019fcaa
Account for traits
2021-06-02 22:20:41 +02:00
bors[bot]
5be653d426
Merge #9108
...
9108: Don't show extract into variable assist for unit expressions r=jonas-schievink a=brandondong
**Reproduction:**
```rust
fn main() {
let mut i = 3;
$0if i >= 0 {
i += 1;
} else {
i -= 1;
}$0
}
```
1. Select the snippet of code between the $0's.
2. The extract into variable assist shows up, pushing down the more useful extract into function assist.
3. The resulting output of selecting the extract into variable assist is valid but with the extracted variable having the unit type:
```rust
fn main() {
let mut i = 3;
let var_name = if i >= 0 {
i += 1;
} else {
i -= 1;
};
var_name
}
```
**Fix:**
- Don't show the extract into variable assist for unit expressions. I could not think of any scenarios where such a variable extraction would be desired.
Co-authored-by: Brandon <brandondong604@hotmail.com>
2021-06-02 17:25:11 +00:00
bors[bot]
a421482e75
Merge #9112
...
9112: Fix some bugs in `extract_struct_from_enum_variant` assist r=Veykril a=Veykril
bors r+
Fixes #9100
Fixes #9099
Kind of fixes #9109 , it now copies all the generics might be incorrect if the variant doesn't use all of them)
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-02 16:18:42 +00:00
Lukas Wirth
6ffe1d99d4
Fix references to patterns in extract_struct_from_enum_variant assist
2021-06-02 18:16:59 +02:00
Lukas Wirth
9ff7ab680c
Carry over attributes in extract_struct_from_enum_variant
2021-06-02 17:55:08 +02:00
Lukas Wirth
f3dc4321c8
Account for generics in extract_struct_from_enum_variant
2021-06-02 17:44:00 +02:00
Jonas Schievink
66a5fd375a
Place extracted type alias outside of impl
2021-06-02 16:50:44 +02:00
Brandon
7d2710218f
Don't show extract into variable assist for unit expressions
2021-06-02 00:59:09 -07:00
Laurențiu Nicola
8206939fed
clippy::redundant_clone fixes
2021-05-26 18:34:50 +03:00
Domantas Jadenkus
3641abc0c3
add test that it does not create extraneous commas
2021-05-24 22:17:16 +03:00
Domantas Jadenkus
22e5194396
generate match arms with todo!() as placeholder body
2021-05-24 22:17:16 +03:00
bors[bot]
495c9586ec
Merge #8945
...
8945: fix: Make expected type work in more situations r=flodiebold a=flodiebold
Also makes call info show the correct types for generic methods.
![2021-05-23-182952_1134x616_scrot](https://user-images.githubusercontent.com/906069/119269023-dd5a5b00-bbf5-11eb-993a-b6e122c3b9a6.png )
![2021-05-23-183117_922x696_scrot](https://user-images.githubusercontent.com/906069/119269025-dfbcb500-bbf5-11eb-983c-fc415b8428e0.png )
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-05-23 21:55:51 +00:00
Florian Diebold
b8262099cc
Get rid of field_type again
2021-05-23 23:54:35 +02:00
Aleksey Kladov
479a7387c2
feat: generate getter avoids generating types like &Vec<T>
2021-05-24 00:15:23 +03:00
Aleksey Kladov
8696c82777
feat: generate getter assist places the cursor at the generated function
2021-05-23 23:43:33 +03:00
Aleksey Kladov
af54b1e248
minimize tests
2021-05-23 23:19:00 +03:00
Aleksey Kladov
c06599504b
remove duplicate tests
2021-05-23 23:15:54 +03:00
Aleksey Kladov
4c8259e210
reduce duplication
2021-05-23 23:13:35 +03:00
bors[bot]
7d81e40e36
Merge #8901
...
8901: fix: `fill_match_arms` hangs on a tuple of large enums r=matklad a=iDawer
+ Lazy computation of missing arms.
+ Convenience function to test lazy computation: `ide_assists::tests::check_assist_unresolved`.
Fixes #8835
Co-authored-by: Dawer <7803845+iDawer@users.noreply.github.com>
2021-05-22 12:26:40 +00:00
Dawer
d5c96672aa
Test fill_match_arms
for lazy computation.
...
This also adds `ide_assists::tests::check_assist_unresolved` function.
2021-05-21 11:29:24 +05:00
Dawer
570eff6552
fix: fill_match_arms
hangs on a tuple of large enums
2021-05-20 23:56:26 +05:00
Dawer
63d317c71a
Compute missing arms lazily.
2021-05-20 23:56:26 +05:00
bors[bot]
f86a9572f3
Merge #8897
...
8897: minor: Don't compare ast::Visibility by stringifying r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-20 16:05:54 +00:00
Lukas Tobias Wirth
da7f1eb756
Don't compare ast::Visibility by stringifying
2021-05-20 17:45:59 +02:00
Lukas Tobias Wirth
066856ab5b
Update outdated auto-import documentation
2021-05-20 15:31:33 +02:00
Dawer
5c5fedb945
add_explicit_type respects @
patterns
2021-05-19 23:27:51 +05:00
Jamie Cunliffe
74f8fe7763
Extract function assist will add async if required
...
The extract function assist will check for an AWAIT_EXPR in the body
and if found, will add async to the generated function.
2021-05-17 18:17:29 +01:00
bors[bot]
b82458818d
Merge #8845
...
8845: Generate the impl block via generate_trait_impl_text_from_impl r=Veykril a=hi-rustin
Try to close https://github.com/rust-analyzer/rust-analyzer/issues/8827
Co-authored-by: hi-rustin <rustin.liu@gmail.com>
2021-05-16 19:32:40 +00:00
Aleksey Kladov
9df0a23368
internal: use standard test style
2021-05-16 15:14:57 +03:00
Aleksey Kladov
e4a7b44e55
internal: use mutable trees when filling match arms
2021-05-16 15:10:18 +03:00
Aleksey Kladov
4e142757e1
minor: use uniform names
2021-05-16 14:18:49 +03:00
bors[bot]
a57bd59f35
Merge #8813
...
8813: Get some more array lengths! r=lf- a=lf-
This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of:
* `let a: [u8; 2] = ...`
* `let a = b"aaa"`
* `let a = [0u8; 4]`
I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!).
Fixes #2922 .
Co-authored-by: Jade <software@lfcode.ca>
2021-05-16 01:53:12 +00:00