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 | LL | fn wrap(self: Wrap<{ fn bar(&self) {} }>) -> &'static () { | +++++++ 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`.