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]>
bors[bot] 2021-10-02
parent 6b10dec · parent a3661b3 · commit 237ea0d
-rw-r--r--crates/ide/src/expand_macro.rs2
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(' ');
}