I think the impl is just necessary to get Rust to try to instantiate it (otherwise it assumes it's unused). This may be a duplicate of issue #4363. ``` rust use std::sync::Mutex; struct Foo { foo: Mutex<Option<Foo>>, } impl Foo { fn bar(self) {} } fn main() {} ``` --- ``` console task 'rustc' has overflowed its stack ```