Hi,
I get an error message that I don't quite understand here (playground):
struct Foo {
bar: Option<String>
}
impl Foo {
fn clear(&mut self) {
if let Some(ref mut bar) = self.bar {
*bar.clear();
}
}
}
The error is:
error[E0614]: type `()` cannot be dereferenced
--> src/lib.rs:8:13
|
8 | *bar.clear();
| ^^^^^^^^^^^^
I don't understand why I can't dereference if I'm taking a reference, and I also don't understand why the type is ()
in the error message. If I remove the dereference and write just bar.clear()
instead of *bar.clear()
everything works fine but I don't know why.