error: `self` parameter is only allowed in associated functions --> $DIR/nested-item.rs:5:9 | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &() { | ^^^^ not semantically valid as function parameter | = note: associated functions are those in `impl` or `trait` definitions error: `self` parameter is only allowed in associated functions --> $DIR/nested-item.rs:5:29 | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &() { | ^^^^^ not semantically valid as function parameter | = note: associated functions are those in `impl` or `trait` definitions error[E0106]: missing lifetime specifier --> $DIR/nested-item.rs:5:46 | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &() { | ^ expected named lifetime parameter | = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static` | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &'static () { | +++++++ help: instead, you are more likely to want to change the argument to be borrowed... | LL | fn wrap(self: &Wrap<{ fn bar(&self) {} }>) -> &() { | + help: ...or alternatively, you might want to return an owned value | LL - fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &() { LL + fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> () { | error[E0412]: cannot find type `Wrap` in this scope --> $DIR/nested-item.rs:5:15 | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &() { | ^^^^ not found in this scope error: aborting due to 4 previous errors Some errors have detailed explanations: E0106, E0412. For more information about an error, try `rustc --explain E0106`.