Unnamed repository; edit this file 'description' to name the repository.
Merge #10418
10418: Add whitespace between lifetime and mut keyword in "expand macro" command r=lnicola a=nathanwhit
Before, we were only adding whitespace between a lifetime and the following ident, which produced invalid code for mutable references.
Before this PR:
```rust
macro_rules! foo {
() => {
pub struct Foo<'a> {
foo: &'a mut str,
}
};
}
foo!(); // <- expand macro here
```
expanded to
```rust
pub struct Foo< 'a>{
foo: & 'amut str,
}
```
with this PR, it expands to
```rust
pub struct Foo< 'a>{
foo: & 'a mut str,
}
```
Co-authored-by: nathan.whitaker <[email protected]>
| -rw-r--r-- | crates/ide/src/expand_macro.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/ide/src/expand_macro.rs b/crates/ide/src/expand_macro.rs index 079f847030..311a0c0b51 100644 --- a/crates/ide/src/expand_macro.rs +++ b/crates/ide/src/expand_macro.rs @@ -159,7 +159,7 @@ fn insert_whitespaces(syn: SyntaxNode) -> String { res.push_str("}\n"); res.extend(iter::repeat(" ").take(2 * indent)); } - LIFETIME_IDENT if is_next(|it| it == IDENT, true) => { + LIFETIME_IDENT if is_next(|it| it == IDENT || it == MUT_KW, true) => { res.push_str(token.text()); res.push(' '); } |