diff --git a/compiler/rustc_ast_lowering/src/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs
index eb206a09be313..04991347bda1e 100644
--- a/compiler/rustc_ast_lowering/src/expr.rs
+++ b/compiler/rustc_ast_lowering/src/expr.rs
@@ -1079,7 +1079,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
                 let (parameters, expr) = this.lower_coroutine_body_with_moved_arguments(
                     &inner_decl,
                     |this| this.with_new_scopes(fn_decl_span, |this| this.lower_expr_mut(body)),
-                    body.span,
+                    body.span.with_lo(fn_decl_span.lo()),
                     coroutine_kind,
                     hir::CoroutineSource::Closure,
                 );
diff --git a/tests/ui/async-await/async-closures/wrong-fn-kind.stderr b/tests/ui/async-await/async-closures/wrong-fn-kind.stderr
index e56389b320273..6f07a6feed35f 100644
--- a/tests/ui/async-await/async-closures/wrong-fn-kind.stderr
+++ b/tests/ui/async-await/async-closures/wrong-fn-kind.stderr
@@ -20,15 +20,16 @@ LL | fn needs_async_fn(_: impl async Fn()) {}
    |                           ^^^^^^^^^^ required by this bound in `needs_async_fn`
 
 error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure
-  --> $DIR/wrong-fn-kind.rs:9:29
+  --> $DIR/wrong-fn-kind.rs:9:20
    |
 LL |   fn needs_async_fn(_: impl async Fn()) {}
    |                        --------------- change this to accept `FnMut` instead of `Fn`
 ...
 LL |       needs_async_fn(async || {
-   |  _____--------------_--------_^
-   | |     |              |
-   | |     |              in this closure
+   |       -------------- ^-------
+   |       |              |
+   |  _____|______________in this closure
+   | |     |
    | |     expects `Fn` instead of `FnMut`
 LL | |
 LL | |         x += 1;
diff --git a/tests/ui/coroutine/break-inside-coroutine-issue-124495.rs b/tests/ui/coroutine/break-inside-coroutine-issue-124495.rs
index 5d93db56722bf..97c3d06c023e6 100644
--- a/tests/ui/coroutine/break-inside-coroutine-issue-124495.rs
+++ b/tests/ui/coroutine/break-inside-coroutine-issue-124495.rs
@@ -18,6 +18,7 @@ async gen fn async_gen_fn() {
 
 fn main() {
     let _ = async { break; }; //~ ERROR `break` inside `async` block
+
     let _ = async || { break; }; //~ ERROR `break` inside `async` closure
 
     let _ = gen { break; }; //~ ERROR `break` inside `gen` block
diff --git a/tests/ui/coroutine/break-inside-coroutine-issue-124495.stderr b/tests/ui/coroutine/break-inside-coroutine-issue-124495.stderr
index a7f37fad35ea8..f030961b7edde 100644
--- a/tests/ui/coroutine/break-inside-coroutine-issue-124495.stderr
+++ b/tests/ui/coroutine/break-inside-coroutine-issue-124495.stderr
@@ -38,16 +38,16 @@ LL |     let _ = async { break; };
    |             enclosing `async` block
 
 error[E0267]: `break` inside `async` closure
-  --> $DIR/break-inside-coroutine-issue-124495.rs:21:24
+  --> $DIR/break-inside-coroutine-issue-124495.rs:22:24
    |
 LL |     let _ = async || { break; };
-   |                      --^^^^^---
-   |                      | |
-   |                      | cannot `break` inside `async` closure
-   |                      enclosing `async` closure
+   |             -----------^^^^^---
+   |             |          |
+   |             |          cannot `break` inside `async` closure
+   |             enclosing `async` closure
 
 error[E0267]: `break` inside `gen` block
-  --> $DIR/break-inside-coroutine-issue-124495.rs:23:19
+  --> $DIR/break-inside-coroutine-issue-124495.rs:24:19
    |
 LL |     let _ = gen { break; };
    |             ------^^^^^---
@@ -56,7 +56,7 @@ LL |     let _ = gen { break; };
    |             enclosing `gen` block
 
 error[E0267]: `break` inside `async gen` block
-  --> $DIR/break-inside-coroutine-issue-124495.rs:25:25
+  --> $DIR/break-inside-coroutine-issue-124495.rs:26:25
    |
 LL |     let _ = async gen { break; };
    |             ------------^^^^^---