about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ide-assists/src/handlers/generate_delegate_methods.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ide-assists/src/handlers/generate_delegate_methods.rs b/crates/ide-assists/src/handlers/generate_delegate_methods.rs
index c2c5bf3aabb..c8d0493d097 100644
--- a/crates/ide-assists/src/handlers/generate_delegate_methods.rs
+++ b/crates/ide-assists/src/handlers/generate_delegate_methods.rs
@@ -104,9 +104,11 @@ pub(crate) fn generate_delegate_methods(acc: &mut Assists, ctx: &AssistContext<'
                     make::name_ref(&method_name.to_string()),
                     arg_list,
                 );
-                let body = make::block_expr([], Some(tail_expr));
                 let ret_type = method_source.ret_type();
                 let is_async = method_source.async_token().is_some();
+                let tail_expr_finished =
+                    if is_async { make::expr_await(tail_expr) } else { tail_expr };
+                let body = make::block_expr([], Some(tail_expr_finished));
                 let f = make::fn_(vis, name, type_params, params, body, ret_type, is_async)
                     .indent(ast::edit::IndentLevel(1))
                     .clone_for_update();
@@ -306,7 +308,7 @@ struct Person<T> {
 
 impl<T> Person<T> {
     $0pub(crate) async fn age<J, 'a>(&'a mut self, ty: T, arg: J) -> T {
-        self.age.age(ty, arg)
+        self.age.age(ty, arg).await
     }
 }"#,
         );