Skip to content

Commit d24a631

Browse files
committed
fix: allow equality expressions in parsing of format_args
1 parent b30c688 commit d24a631

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

crates/ide-assists/src/handlers/extract_function.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6268,6 +6268,28 @@ fn main() {
62686268
62696269
fn $0fun_name(s: &Foo) {
62706270
*print!("{}{}", s, s);
6271+
}"#,
6272+
);
6273+
}
6274+
6275+
#[test]
6276+
fn parameter_is_added_used_in_eq_expression_in_macro() {
6277+
check_assist(
6278+
extract_function,
6279+
r#"
6280+
//- minicore: fmt
6281+
fn foo() {
6282+
let v = 123;
6283+
$0print!("{v:?}{}", v == 123);$0
6284+
}"#,
6285+
r#"
6286+
fn foo() {
6287+
let v = 123;
6288+
fun_name(v);
6289+
}
6290+
6291+
fn $0fun_name(v: i32) {
6292+
print!("{v:?}{}", v == 123);
62716293
}"#,
62726294
);
62736295
}

crates/parser/src/grammar/expressions/atom.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ fn builtin_expr(p: &mut Parser<'_>) -> Option<CompletedMarker> {
283283
if p.eat(T![,]) {
284284
while !p.at(EOF) && !p.at(T![')']) {
285285
let m = p.start();
286-
if p.at(IDENT) && p.nth_at(1, T![=]) {
286+
if p.at(IDENT) && p.nth_at(1, T![=]) && !p.nth_at(2, T![=]) {
287287
name(p);
288288
p.bump(T![=]);
289289
}

0 commit comments

Comments
 (0)