Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0267: `break` inside of a closure
What it meansA loop keyword (break or continue) was used inside a closure but outside of any loop.
What rustc prints
error[E0267]: `break` inside of a closure
--> main.rs:3:14
|
3 | let w = || { break; }; // error: `break` inside of a closure
| -- ^^^^^ cannot `break` inside of a closure
| |
| enclosing closureReal output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
A loop keyword (break or continue) was used inside a closure but outside of any loop.
Erroneous code example:
let w = || { break; }; // error: `break` inside of a closure
break and continue keywords can be used as normal inside closures as long as they are also contained within a loop. To halt the execution of a closure you should instead use a return statement. Example:
let w = || {
for _ in 0..10 {
break;
}
};
w();From rustc --explain E0267 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0152found duplicate lang item `owned_box`
- E0264unknown external lang item: `copy`
- E0268`break` outside of a loop or labeled block
- E0317`if` may be missing an `else` clause
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?