rust/tests/ui/return/issue-82612-return-mutable-reference.stderr
Esteban Küber 42ec5c7b32 Detail expectation on non-() block tail in if then condition with no else
When encountering an `if` expression with no `else` where the then
block has a tail expression, we emit an E0308 type error. We now explain
why `()` was expected.
2025-12-22 13:55:49 +00:00

28 lines
1 KiB
Text

error[E0308]: mismatched types
--> $DIR/issue-82612-return-mutable-reference.rs:18:13
|
LL | / if index < self.values.len() {
LL | | let value = unsafe { self.values.get_unchecked_mut(index) };
LL | | value.get_or_insert_with(func)
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `&mut V`
LL | | }
| |_________- `if` expressions without `else` arms expect their inner expression to be `()`
|
= note: expected unit type `()`
found mutable reference `&mut V`
help: consider using a semicolon here
|
LL | value.get_or_insert_with(func);
| +
help: consider using a semicolon here
|
LL | };
| +
help: you might have meant to return this value
|
LL | return value.get_or_insert_with(func);
| ++++++ +
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.