Aleksey Kladov
e300f58d2c
internal: remove one more usage of old editing API.
2021-08-14 20:17:16 +03:00
Aleksey Kladov
dc17b35e62
internal: remove a remnant of old editing infra
2021-08-14 18:24:42 +03:00
Aleksey Kladov
90357a9090
internal: merge hir::BinaryOp and ast::BinOp
2021-08-14 18:10:01 +03:00
Aleksey Kladov
fe4f059450
internal: prepare to merge hir::BinaryOp and ast::BinOp
2021-08-14 17:07:51 +03:00
Aleksey Kladov
6df00f8495
internal: make naming consistent
2021-08-14 17:01:28 +03:00
Aleksey Kladov
faa420fc32
internal: prepare a dedicated module for all operators
2021-08-14 16:58:46 +03:00
Jonas Schievink
d568e7686a
Support if let
match guards
2021-08-13 00:25:14 +02:00
Yoshua Wuyts
97ec6a27ec
add make::ext::path_from_idents
2021-08-12 12:17:09 +02:00
Yoshua Wuyts
1cf7af7032
wip enum record/tuple generation
2021-08-10 22:08:14 +02:00
Yoshua Wuyts
20c3b20db3
add make::expr_op
2021-08-10 19:48:32 +02:00
mahdi-frms
9ca73528ee
generate method assist
2021-08-09 21:06:24 +04:30
bors[bot]
5664a2b0b3
Merge #9814
...
9814: Generate default impl when converting `#[derive(Debug)]` to manual impl r=yoshuawuyts a=yoshuawuyts
This patch makes it so when you convert `#[derive(Debug)]` to a manual impl, a default body is provided that's equivalent to the original output of `#[derive(Debug)]`. This should make it drastically easier to write custom `Debug` impls, especially when all you want to do is quickly omit a single field which is `!Debug`.
This is implemented for enums, record structs, tuple structs, empty structs - and it sets us up to implement variations on this in the future for other traits (like `PartialEq` and `Hash`).
Thanks!
## Codegen diff
This is the difference in codegen for record structs with this patch:
```diff
struct Foo {
bar: String,
}
impl fmt::Debug for Foo {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- todo!();
+ f.debug_struct("Foo").field("bar", &self.bar).finish()
}
}
```
Co-authored-by: Irina Shestak <shestak.irina@gmail.com>
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
Co-authored-by: Yoshua Wuyts <yoshuawuyts+github@gmail.com>
2021-08-08 22:30:37 +00:00
Lukas Wirth
3b7c713af3
Implement if_to_bool_then assist
2021-08-08 17:56:34 +02:00
Yoshua Wuyts
4b7ae9fedc
generate Debug for enums
2021-08-08 16:26:25 +02:00
Yoshua Wuyts
fd7236c791
debug for record field structs
2021-08-08 16:26:25 +02:00
Lukas Wirth
c4a119f433
Simplify
2021-08-07 22:16:15 +02:00
bors[bot]
80f522091a
Merge #9790
...
9790: fix: extract_type_alias extracts generics correctly r=Veykril a=Veykril
Fixes #8335
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-08-05 00:54:49 +00:00
Lukas Wirth
b6d574642d
extract_type_alias extracts generics correctly
2021-08-05 02:54:06 +02:00
Jade
e3a67ccec6
tree-wide: fix rustdoc warnings, add some links
2021-08-03 21:34:20 -07:00
Lukas Wirth
1edbaa29f9
Wrap inner tail expressions in MissingOkOrSomeInTailExpr
2021-07-31 20:00:09 +02:00
Lukas Wirth
778e6e8ba8
add_explicit_type is applicable for closure parameters
2021-07-31 14:04:34 +02:00
bors[bot]
1f817833e7
Merge #9727
...
9727: internal: Simplify extract_function assist r=Veykril a=Veykril
also fixes #7839(blocked on #9728 )
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-30 14:56:50 +00:00
bors[bot]
0a3ac7a96c
Merge #9728
...
9728: fix: Attach comma token to MATCH_ARM instead of MATCH_ARM_LIST r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-30 14:11:37 +00:00
Lukas Wirth
82c1e61887
Fix assists assuming comma belonging to MATCH_ARM_LIST
2021-07-30 16:01:26 +02:00
Lukas Wirth
b21f66fce3
Simplify extract_function assist
2021-07-29 22:07:56 +02:00
Lukas Wirth
b537cb186e
Use more strictly typed syntax nodes for analysis in extract_function assist
2021-07-29 17:26:37 +02:00
Lukas Wirth
dfdf6fd9f8
Fix some more basic clippy lints
2021-07-21 20:52:08 +02:00
Lukas Wirth
e7aa37c20a
Support GATs for associated type arg parsing
2021-07-18 11:08:43 +02:00
Lukas Wirth
9e1eb77f6b
Respect coercions in inline_call
2021-07-10 19:24:49 +02:00
vi_mi
57f119b5fa
fix: Adding async keyword when await is present in generate_function assist
2021-07-09 20:04:55 +05:30
bors[bot]
2bc4f9e371
Merge #9474
...
9474: fix: Inline parameters in `inline_call` if possible r=Veykril a=Veykril
Fixes #9491
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-05 11:50:18 +00:00
bors[bot]
336194c09b
Merge #9476
...
9476: internal: overhaul codegen r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-07-03 19:26:04 +00:00
Aleksey Kladov
58d2ece88a
internal: overhaul code generation
...
* Keep codegen adjacent to the relevant crates.
* Remove codgen deps from xtask, speeding-up from-source installation.
This regresses the release process a bit, as it now needs to run the
tests (and, by extension, compile the code).
2021-07-03 22:11:03 +03:00
Lukas Wirth
d308f17a21
Inline parameters in inline_call
if possible
2021-07-03 20:05:54 +02:00
Lukas Wirth
14e18bfa38
Merge the inline function/method assists into inline_call
2021-07-03 18:07:03 +02:00
Lukas Wirth
688398febc
feat: Implement inline_method
assist
2021-07-03 01:33:34 +02:00
Lukas Wirth
251f0c6090
replace_match_with_if_let
works on more binary matches
2021-07-02 21:05:10 +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
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
Lukas Wirth
344cb5e76a
Don't insert imports outside of cfg attributed items
2021-06-18 23:56:43 +02:00
Lukas Wirth
2ee090faaf
Allow to disable import insertion on single path glob imports
2021-06-18 23:11:56 +02:00
Lukas Wirth
cd5f4121e3
Create modules in correct directory for nested modules in move_module assist
2021-06-17 12:09:28 +02:00
Lukas Wirth
29054e02fb
Highlight unsafe trait refs as unsafe only in impl blocks and definitions
2021-06-15 21:49:59 +02:00
Maan2003
b857a5dcf0
clippy::manual_str_repeat
2021-06-13 09:37:28 +05:30
Maan2003
c9b4ac5be4
clippy::redudant_borrow
2021-06-13 09:24:16 +05:30
Jonas Schievink
1d6eef1350
Update ungrammar
2021-06-11 18:34:30 +02:00