hkalbasi
cd67589f63
beginning of MIR
2023-02-27 23:45:54 +03:30
Lukas Wirth
9e5fa74279
Simplify
2023-02-27 15:51:45 +01:00
Azriel Hoh
a6f54d6c5f
Conditionally add snippet marker.
2023-02-16 10:50:27 +13:00
Lukas Wirth
3c0f20a7bd
internal: Enable smallvec's union
feature
2023-02-14 17:01:01 +01:00
lh123
626dc651ff
fix: Insert spaces when inlining macros
2023-02-10 14:22:56 +08:00
bors
57ea9826b5
Auto merge of #13991 - vasilev-alex:add-braces-assist, r=Veykril
...
feat: add braces assist
This assist adds support for adding braces where it may be appropriate (e.g. lambda expressions)
![ex](https://user-images.githubusercontent.com/4973437/213783924-7c8a8ab5-6a52-4d80-837c-cf2a9b56f061.gif )
2023-02-07 17:12:01 +00:00
Ryo Yoshida
493cabbde7
Treat scope info retrieval failure as assist failure
2023-02-02 17:47:11 +09:00
Ryo Yoshida
3edde6fcc1
Support generic function in generate_function
assist
2023-01-31 21:05:25 +09:00
Ryo Yoshida
0df70d37fc
Minor refactoring
2023-01-31 21:05:04 +09:00
Jonas Schievink
6321b25a21
Apply the assist to itself
2023-01-30 17:52:15 +01:00
Jonas Schievink
1f20804b6e
Improve "match to let-else" assist
2023-01-30 17:50:02 +01:00
Jonas Schievink
e7a2d13ff6
Fix "add missing impl members" assist for impls inside blocks
2023-01-27 16:51:55 +01:00
Lukas Wirth
6829190611
Handle boolean scrutinees in match <-> if let replacement assists better
2023-01-27 12:33:40 +01:00
bors
6fd5769996
Auto merge of #14011 - bvanjoi:fix-unwrap-block, r=jonas-schievink
...
fix(ide-assists): unwrap block when it parent is let stmt
fix #13990
2023-01-25 15:04:03 +00:00
bvanjoi
90b1222b0b
fix(ide-assists): unwrap block when it parent is let stmt
2023-01-25 10:25:59 +08:00
Ryo Yoshida
01d8b8947c
Don't escape non-snippets in assist
2023-01-23 00:22:46 +09:00
Alex Vasilev
2a4837089e
fixes
2023-01-21 23:42:11 +05:30
Alex Vasilev
dd9dcca7a2
assist id fix
2023-01-21 00:47:02 +05:30
Alex Vasilev
1ab58b190e
cargo test
2023-01-21 00:42:29 +05:30
Alex Vasilev
ddb2f8760b
typo fix
2023-01-21 00:30:38 +05:30
Alex Vasilev
69ffbe25a1
feat: add braces assist
2023-01-21 00:17:23 +05:30
bvanjoi
8fa69f9f7d
feat: array match
2023-01-20 10:59:30 +08:00
Laurențiu Nicola
210757769d
Fix replace_arith label
2023-01-17 16:31:34 +02:00
bors
fa874627f0
Auto merge of #13969 - Veykril:workspace.dependencies, r=Veykril
...
Use workspace.dependencies to declare local dependencies
2023-01-17 10:29:27 +00:00
bors
62907858d5
Auto merge of #13964 - Veykril:workspace.package, r=Veykril
...
Specify authors, edition, license and rust-versian via workspace.package
2023-01-17 10:13:24 +00:00
Lukas Wirth
bed4db3c62
Use workspace.dependencies to declare local dependencies
2023-01-17 10:52:26 +01:00
bors
455ef0c806
Auto merge of #13935 - ModProg:assist_desugar_doc_comment, r=Veykril
...
Assist: desugar doc-comment
My need for this arose due to wanting to do feature dependent documentation and therefor convert parts of my doc-comments to attributes.
Not sure about the pub-making of the other handlers functions, but I didn't think it made much sense to reimplement them.
2023-01-16 19:11:19 +00:00
Roland Fredenhagen
ec06313a6d
fix test for required_hashes
2023-01-16 19:25:30 +01:00
Roland Fredenhagen
5e66e49c73
move required_hashes into utils
2023-01-16 18:39:16 +01:00
Lukas Wirth
e4858fe480
Specify authors, edition and license via workspace.package
2023-01-16 16:44:00 +01:00
Lukas Wirth
679df2adf1
Specify rust-version via workspace.package
2023-01-16 16:33:01 +01:00
Ryo Yoshida
fc56cacfc1
Test TraitRef
equality before generating missing impl method body
2023-01-16 20:55:56 +09:00
Maybe Waffle
a7787533af
Use the fact that Either
: AstNode
2023-01-14 15:20:32 +00:00
bvanjoi
e9724e55df
fix: check orpat in missing match
2023-01-14 18:54:45 +08:00
Neel Yadav
9721505bf1
Fix panicking Option unwraping in match arm analysis
2023-01-12 22:33:58 -06:00
Roland Fredenhagen
03bc46f96b
Convert pub to pub(crate)
2023-01-12 09:54:48 +01:00
Roland Fredenhagen
6f201cfc56
Assist: desugar doc-comment
2023-01-12 02:28:13 +01:00
Daniel Eades
d218b237fd
collapse some nested blocks
2023-01-10 20:40:08 +00:00
Daniel Eades
ac3844a0bb
a number of code simplifications
2023-01-10 18:48:51 +00:00
bors
f920b03c6c
Auto merge of #13914 - WaffleLapkin:qualify_method_call_rewrite, r=lnicola
...
minor: Make `qualify_method_call` `RefactorRewrite`
See https://github.com/rust-lang/rust-analyzer/pull/13825#issuecomment-1363289767
2023-01-09 15:22:51 +00:00
bors
d33fa38cc9
Auto merge of #13825 - WaffleLapkin:ufcs_to_method_call_and_back, r=Veykril
...
feat: Add `unqualify_method_call` assist
...which is the inverse of `qualify_method_call` assist.
![Peek 2022-12-22 22-47](https://user-images.githubusercontent.com/38225716/209206554-8f067206-6fa6-48f8-849e-f6d36ee2e5a1.gif )
Optional future work:
- import the trait if needed
- remove excess references when auto-ref is possible
2023-01-09 14:37:40 +00:00
Maybe Waffle
bdaad9eb15
Make qualify_method_call
RefactorRewrite
2023-01-09 14:26:48 +00:00
bors
336608aa92
Auto merge of #13810 - tfpk:tfpk/macro-inline, r=Veykril
...
Add action to expand a declarative macro once, inline. Fixes #13598
This commit adds a new r-a method, `expandMacroInline`, which expands the macro that's currently selected. See #13598 for the most applicable issue; though I suspect it'll resolve part of #5949 and make #11888 significantly easier).
The macro works like this:
![rust-analyser-feature](https://user-images.githubusercontent.com/10906982/208813167-3123e379-8fd5-4206-a4f4-5af1129565f9.gif )
I have 2 questions before this PR can be merged:
1. **Should we rustfmt the output?** The advantage of doing this is neater code. The disadvantages are we'd have to format the whole expr/stmt/block (since there's no point just formatting one part, especially over multiple lines), and maybe it moves the code around more in weird ways. My suggestion here is to start off by not doing any formatting; and if it appears useful we can decide to do formatting in a later release.
2. **Is it worth solving the `$crate` hygiene issue now?** -- I think this PR is usable as of right now for some use-cases; but it is annoying that many common macros (i.e. `println!()`, `format!()`) can't be expanded further unless the user guesses the correct `$crate` value. The trouble with solving that issue is that I think it's complicated and imperfect. If we do solve it; we'd also need to either change the existing `expandMacro`/`expandMacroInline` commands; provide some option to allow/disallow `$crate` expanding; or come to some other compromise.
2023-01-09 14:24:41 +00:00
Maybe Waffle
c782353a90
Rename assist: convert_ufcs_to_method
=> unqualify_method_call
2023-01-09 14:23:30 +00:00
bors
938a39ab89
Auto merge of #13891 - bvanjoi:reverse-whitespace-in-assists, r=Veykril
...
fix: keep whitespace in extract function handler
Fixed #13874
2023-01-09 14:11:40 +00:00
Tom Kunc
769273ca4c
Simplify code with @Veykril's suggestion.
2023-01-09 07:01:41 -07:00
Maybe Waffle
44c84a8d28
Add convert_ufcs_to_method
assist
2023-01-09 13:50:00 +00:00
bors
b0214d81e8
Auto merge of #13843 - Overpeek:master, r=Veykril
...
fix: generate async delegate methods
Fixes a bug where the generated async method doesn't await the result before returning it.
This is an example of what the output looked like:
```rust
struct Age<T>(T);
impl<T> Age<T> {
pub(crate) async fn age<J, 'a>(&'a mut self, ty: T, arg: J) -> T {
self.0
}
}
struct Person<T> {
age: Age<T>,
}
impl<T> Person<T> {
pub(crate) async fn age<J, 'a>(&'a mut self, ty: T, arg: J) -> T {
self.age.age(ty, arg) // .await is missing
}
}
```
The `.await` is missing, so the return type is `impl Future<Output = T>` instead of `T`
2023-01-09 13:34:51 +00:00
bors
ae659125a5
Auto merge of #13763 - rami3l:fix/gen-partial-eq-generic, r=Veykril
...
fix: add generic `TypeBoundList` in generated derivable impl
Potentially fixes #13727 .
Continuing with the work in #13732 , this fix tries to add correct type bounds in the generated `impl` block:
```diff
enum Either<T, U> {
Left(T),
Right(U),
}
- impl<T, U> PartialEq for Either<T, U> {
+ impl<T: PartialEq, U: PartialEq> PartialEq for Either<T, U> {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Self::Left(l0), Self::Left(r0)) => l0 == r0,
(Self::Right(l0), Self::Right(r0)) => l0 == r0,
_ => false,
}
}
}
```
2023-01-09 13:02:09 +00:00
bors
1e20bf38b2
Auto merge of #13684 - unvalley:extract-expressions-from-format-string, r=Veykril
...
feat: extract_expressions_from_format_string
closes #13640
- rename to `extract_expressions_from_format_string`
- leave identifier from format string
- but this is from rustc version 1.65.0
- Should I add flag or something?
Note: the assist behaves below cases for now. I'll create an issue for these.
```rs
let var = 1 + 1;
// ok
format!("{var} {1+1}"); // → format!("{var} {}", 1+1);
format!("{var:?} {1+1}"); // → format!("{var:?} {}", 1 + 1);
format!("{var} {var} {1+1}"); // → format!("{var} {var} {}", 1 + 1);
// breaks (need to handle minimum width by postfix`$`)
format!("{var:width$} {1+1}"); // → format!("{var:width\$} {}", 1+1);
format!("{var:.prec$} {1+1}"); // → format!("{var:.prec\$} {}", 1+1);
format!("Hello {:1$}! {1+1}", "x" 5); // → format("Hello {:1\$}! {}", "x", 1+1);
format!("Hello {:width$}! {1+1}", "x", width = 5); // → println!("Hello {:width\$}! {}", "x", 1+1);
```
https://user-images.githubusercontent.com/38400669/204344911-f1f8fbd2-706d-414e-b1ab-d309376efb9b.mov
2023-01-09 11:40:48 +00:00