about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan Mehri <ryan.mehri1@gmail.com>2023-09-21 21:31:15 -0700
committerRyan Mehri <ryan.mehri1@gmail.com>2023-09-21 21:31:15 -0700
commit60f7473c997a33cd59d8530f8aa1588bd622d296 (patch)
tree6b416ef72bd34f6c7b102bd268eddab2bc2709c0
parentd6fef2c7e3be2783369b4b84e320b163b8fd291a (diff)
downloadrust-60f7473c997a33cd59d8530f8aa1588bd622d296.tar.gz
rust-60f7473c997a33cd59d8530f8aa1588bd622d296.zip
fix parens when inlining closure local variables
-rw-r--r--crates/ide-assists/src/handlers/inline_local_variable.rs21
1 files changed, 19 insertions, 2 deletions
diff --git a/crates/ide-assists/src/handlers/inline_local_variable.rs b/crates/ide-assists/src/handlers/inline_local_variable.rs
index e69d1a29677..49dcde75d2b 100644
--- a/crates/ide-assists/src/handlers/inline_local_variable.rs
+++ b/crates/ide-assists/src/handlers/inline_local_variable.rs
@@ -96,8 +96,7 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
             );
             let parent = matches!(
                 usage_parent,
-                ast::Expr::CallExpr(_)
-                    | ast::Expr::TupleExpr(_)
+                ast::Expr::TupleExpr(_)
                     | ast::Expr::ArrayExpr(_)
                     | ast::Expr::ParenExpr(_)
                     | ast::Expr::ForExpr(_)
@@ -952,4 +951,22 @@ fn f() {
 "#,
         );
     }
+
+    #[test]
+    fn test_inline_closure() {
+        check_assist(
+            inline_local_variable,
+            r#"
+fn main() {
+    let $0f = || 2;
+    let _ = f();
+}
+"#,
+            r#"
+fn main() {
+    let _ = (|| 2)();
+}
+"#,
+        );
+    }
 }