Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0069: `return;` in a function whose return type is not `()`
What it meansThe compiler found a function whose body contains a return; statement but whose return type is not ().
What rustc prints
error[E0069]: `return;` in a function whose return type is not `()` --> main.rs:3:5 | 2 | fn foo() -> u8 { | -- expected `u8` because of this return type 3 | return; | ^^^^^^ return type is not `()` | help: give the `return` a value of the expected type | 3 | return 42; | ++
Real 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
The compiler found a function whose body contains a return; statement but whose return type is not ().
Erroneous code example:
// error
fn foo() -> u8 {
return;
}
Since return; is just like return ();, there is a mismatch between the function's return type and the value being returned.
From rustc --explain E0069 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0055reached the recursion limit while auto-dereferencing `Foo`
- E0059type parameter to bare `FnOnce` trait must be a tuple
- E0071expected struct, variant or union type, found `u32`
- E0072recursive type has infinite size
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?