A4-Tacks
7e2dc40642
Improve make::struct_ field_list whitespace
...
Example
---
**Before this PR**:
```rust
struct Variant{
field: u32
}
```
**After this PR**:
```rust
struct Variant {
field: u32
}
```
2025-09-07 22:19:52 +08:00
Hmikihiro
fcd4010b03
In extract_module.rs, generate ast::Module instead of String
2025-08-07 02:29:59 +09:00
Hmikihiro
c57a42acf3
remvoe add_attr edit_in_place.rs because it use ted.
2025-08-04 21:52:49 +09:00
Hmikihiro
85f7112c0e
Migrate generate_delegate_methods assist to use SyntaxEditor
2025-08-03 02:17:56 +09:00
Hayashi Mikihiro
82dfdacb78
Modify around add_trait_assoc_items_to_impl to migrate add_missing_impl_members
...
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-26 00:22:29 +09:00
Hayashi Mikihiro
9cc03e01c5
migrate generate new
2025-07-21 17:22:03 +09:00
Hayashi Mikihiro
c6ce2abd47
Migrate pull_assignment_up assist to SyntaxEditor
...
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-07-09 00:58:58 +09:00
Lukas Wirth
2c01609d6d
minor: Handle match arm commas in make::match_arm
...
Co-authored-by: Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com>
2025-07-04 11:08:28 +02:00
Chayim Refael Friedman
25a7b2480e
In "Fill match arms", allow users to prefer Self to the enum name when possible
...
But default to not to.
I chose to have a more generic config name because maybe other assists could also use the same approach.
2025-06-06 16:34:53 +03:00
Lukas Wirth
f9c83edf12
fix: Fix move_bounds assists not working for lifetimes
2025-05-05 15:07:36 +02:00
Prajwal S N
2eb7389b63
refactor: migrate let_else_to_match to editor
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-28 17:19:17 +05:30
Lukas Wirth
7e526b6be7
Add expression fill mode variant for filling with underscore expressions
2025-04-28 10:39:36 +02:00
Prajwal S N
243854211c
fix: use ast::TokenTree in make::expr_macro
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-16 13:06:42 +05:30
Lukas Wirth
7fc29a99ef
Merge pull request #19568 from snprajwal/destructure-struct-editor
...
refactor: editor for `destructure_struct_binding`
2025-04-14 15:35:00 +00:00
Prajwal S N
688464d5e6
fix: make::expr_call() -> CallExpr
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-11 02:57:44 +05:30
Prajwal S N
ab620e367d
fix: make::expr_method_call() -> MethodCallExpr
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-11 02:50:20 +05:30
Prajwal S N
728d72fbe1
fix: make::expr_closure() -> ClosureExpr
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-11 02:50:16 +05:30
Prajwal S N
92a7890814
fix: make::expr_paren() -> ParenExpr
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-11 02:50:13 +05:30
Prajwal S N
c254537465
refactor: editor for destructure_struct_binding
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-11 02:36:23 +05:30
Ali Bektas
477b987179
Observe unsafeness when generating manual impls of former derives
2025-03-17 21:55:27 +01:00
BenjaminBrienen
7535bb4661
cargo fmt
2025-03-15 21:32:01 +01:00
Vishruth-Thimmaiah
53f3e6fd5f
feat: for loop to while let assist
2025-03-14 19:15:37 +05:30
Shoyu Vanilla
f06f1b81bb
Migrate some leftovers in add_missing_match_arms
2025-02-24 22:41:52 +09:00
Shoyu Vanilla
8b947d7a12
internal: Remove mutable syntax tree usages from add_missing_match_arms assist
2025-02-14 02:36:05 +09:00
Lukas Wirth
ae74cc3b88
Skip redundant path search in resolve_completion_edits
2025-01-25 13:03:01 +01:00
Giga Bowser
a5a79f5957
internal: Migrate unwrap_return_type assist to use SyntaxEditor
...
Also changes `make::expr_empty_block()` to return `ast::BlockExpr` instead of `ast::Expr`
2025-01-08 18:12:06 -06:00
Giga Bowser
551f1d00dd
internal: make::expr_match should return ast::MatchExpr
2025-01-06 15:58:39 -06:00
Giga Bowser
32ff06d51c
internal: Generally improve make::match_arm
...
`make::match_arm` should take a single `ast::Pat`, and callers can handle creating an `ast::OrPat` if need be. It should also take a proper `ast::MatchGuard`, instead of making one itself.
2025-01-06 15:58:39 -06:00
Giga Bowser
905e1e1fc0
internal: move make::expr_unit to make::ext::expr_unit
...
`expr_unit` is just a shortcut for a common expression, so it belongs in `make::ext`
2025-01-06 15:58:39 -06:00
Giga Bowser
f388482119
internal: make::expr_tuple should return ast::TupleExpr
2025-01-06 15:32:08 -06:00
Giga Bowser
c549be9ab6
internal: make::expr_if should return ast::IfExpr
2025-01-06 15:32:08 -06:00
Giga Bowser
913d197a04
internal: make::expr_prefix should return ast::PrefixExpr
2025-01-06 15:32:08 -06:00
Giga Bowser
159731022f
internal: Generalize make::expr_from_text to types which implement Into<ast::Expr>
...
This will help with specializing the various `make::expr_*` functions later
2025-01-06 15:32:08 -06:00
Lukas Wirth
4b6007115a
minor: New clippy lints
2025-01-06 17:57:17 +01:00
Chayim Refael Friedman
ce323627c5
Support the new CoercePointee derive
2025-01-04 18:35:53 +02:00
Chayim Refael Friedman
791a63255b
Move some more AST makers to the quote macro
...
And implement addons as necessary.
There are many more makers to be moved, and I'm not completely satisfied with this (due to the ease of making a mistake in the AST structure, and slightly less but also because of the need to remember whitespaces), but this is already enough to see how this will look like.
2024-12-30 05:46:06 +02:00
Chayim Refael Friedman
abd7263179
Create a quote!-like API for crafting AST nodes
...
Instead of messing with textual `make`.
And port one `make` helper to it, for the sake of testing.
2024-12-30 04:54:39 +02:00
Giga Bowser
135e71fcb3
minor: Add item_static constructor to SyntaxFactory
2024-12-11 10:32:32 -05:00
Giga Bowser
c70bf568bb
minor: Add item_enum constructor to SyntaxFactory
...
I recursively added all constructors it depends on. I also changed the old `make::` constructors to support more of the grammar.
2024-12-10 11:12:44 -05:00
Chayim Refael Friedman
5f25ae3d1b
Lay the foundation for diagnostics in ty lowering, and implement a first diagnostic
...
The diagnostic implemented is a simple one (E0109). It serves as a test for the new foundation.
This commit only implements diagnostics for type in bodies and body-carrying signatures; the next commit will include diagnostics in the rest of the things.
Also fix one weird bug that was detected when implementing this that caused `Fn::(A, B) -> C` (which is a valid, if bizarre, alternative syntax to `Fn(A, B) -> C` to lower incorrectly.
And also fix a maybe-bug where parentheses were sneaked into a code string needlessly; this was not detected until now because the parentheses were removed (by the make-AST family API), but with a change in this commit they are now inserted. So fix that too.
2024-12-04 14:22:56 +02:00
Giga Bowser
a87e1aad81
Add ty_fn_ptr function to create function pointer type
2024-10-24 17:46:14 -04:00
Chayim Refael Friedman
cfb701ac78
Get rid of $crate in expansions shown to the user
...
Be it "Expand Macro Recursively", "Inline macro" or few other things.
We replace it with the crate name, as should've always been.
2024-09-18 18:30:59 +03:00
Lukas Wirth
eb64cc8c35
Complete desugared and resugared async fn in trait impls
2024-09-01 11:22:50 +02:00
Chayim Refael Friedman
cc07652be5
Add gen modifier to functions
...
We don't yet lower or maybe even parse them, but blocks already have `gen`, so why not.
2024-08-24 23:46:32 +03:00
bors
fc36e0ca16
Auto merge of #17907 - ChayimFriedman2:no-once_cell, r=Veykril
...
internal: Replace once_cell with std's recently stabilized OnceCell/Lock and LazyCell/Lock
This doesn't get rid of the once_cell dependency, unfortunately, since we have dependencies that use it, but it's a nice to do cleanup. And when our deps will eventually get rid of once_cell we will get rid of it for free.
2024-08-16 07:05:59 +00:00
Chayim Refael Friedman
955e609867
Replace once_cell with std's recently stabilized OnceCell/Lock and LazyCell/Lock
...
This doesn't get rid of the once_cell dependency, unfortunately, since we have dependencies that use it, but it's a nice to do cleanup. And when our deps will eventually get rid of once_cell we will get rid of it for free.
2024-08-16 09:53:37 +03:00
Lukas Wirth
f90bdfc13d
internal: Properly check the edition for edition dependent syntax kinds
2024-08-15 15:57:47 +02:00
Yuri Astrakhan
cc1aded86c
Avoid ref when using format! in compiler
...
Clean up a few minor refs in `format!` macro, as it has a performance cost. Apparently the compiler is unable to inline `format!("{}", &variable)`, and does a run-time double-reference instead (format macro already does one level referencing). Inlining format args prevents accidental `&` misuse.
2024-07-19 14:41:59 -04:00
bors
cb6b808185
Auto merge of #17315 - hamirmahal:style/simplify-string-interpolation, r=Veykril
...
style: simplify string interpolation
2024-06-03 12:29:27 +00:00
DropDemBits
cf9401049c
Make extract_expressions_from_format_string only use snippets when available
2024-06-02 11:47:05 -04:00