play.rust-lang.org/...
struct RefWrap<'a> {
wrap: &'a mut Option<String>,
}
impl<'a> RefWrap<'a> {
fn unwrap(&mut self) -> &'a mut String {
match *self.wrap {
Some(ref mut s) => s,
None => panic!(),
}
}
}
Насколько я понимаю, этот код правильный (возвращенная ссылка действительно имеет время жизни'a
, Но Rust выдает следующую ошибку:
error[E0495]: cannot infer an appropriate lifetime for pattern due to conflicting requirements
--> <anon>:8:18
|
8 | Some(ref mut s) => s,
| ^^^^^^^^^
Использование неизменяемых ссылок, работает без ошибок.
Там былоодин похожий вопрос, но я уверен, что это не поможет в этом случае.