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 | | } | |_________- expected this 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 previous error For more information about this error, try `rustc --explain E0308`.