Skip to content

break inside async closure has incorrect span for enclosing closure #124496

Closed
@dtolnay

Description

@dtolnay

Code

#![feature(async_closure)]

fn main() {
    let _ = || break;
    let _ = async || break;
}

Current output

error[E0267]: `break` inside of a closure
 --> src/main.rs:4:16
  |
4 |     let _ = || break;
  |             -- ^^^^^ cannot `break` inside of a closure
  |             |
  |             enclosing closure

error[E0267]: `break` inside of a closure
 --> src/main.rs:5:22
  |
5 |     let _ = async || break;
  |                      ^^^^^
  |                      |
  |                      cannot `break` inside of a closure
  |                      enclosing closure

Desired output

...

error[E0267]: `break` inside of a closure
 --> src/main.rs:5:13
  |
5 |     let _ = async || break;
  |             -------- ^^^^^
  |             |        cannot `break` inside of a closure
  |             |
  |             enclosing closure

Rust Version

rustc 1.79.0-nightly (aed2187d5 2024-04-27)
binary: rustc
commit-hash: aed2187d53b8789e3a37f50ae36f894a2a679077
commit-date: 2024-04-27
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-async-closures`async || {}`A-diagnosticsArea: Messages for errors, warnings, and lintsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions