error: `self` parameter is only allowed in associated functions --> $DIR/self.rs:18:26 | 18 | fn f(self: ()) {} //~ ERROR `self` parameter is only allowed in associated functions | ^^^^ not semantically valid as function parameter ... 21 | t!(); | ----- in this macro invocation | = note: associated functions are those in `impl` or `trait` definitions = note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0434]: can't capture dynamic environment in a fn item --> $DIR/self.rs:16:29 | 16 | let _ = self; //~ ERROR E0434 | ^^^^ ... 21 | t!(); | ----- in this macro invocation | = help: use the `|| { ... }` closure form instead = note: this error originates in the macro `t` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0423]: expected value, found struct `S` --> $DIR/self.rs:40:27 | 32 | / pub struct S { 33 | | f: (), 34 | | } | |_____- `S` defined here ... 40 | let _: Self = Self; //~ ERROR E0423 | ^^^^ help: use struct literal syntax instead: `S { f: val }` error[E0308]: mismatched types --> $DIR/self.rs:39:25 | 39 | let _: () = self; //~ ERROR E0308 | -- ^^^^ expected `()`, found struct `Pin` | | | expected due to this | = note: expected unit type `()` found struct `Pin<&mut self_span::S>` error[E0308]: mismatched types --> $DIR/self.rs:52:25 | 52 | let _: () = self; //~ ERROR E0308 | -- ^^^^ expected `()`, found struct `Pin` | | | expected due to this | = note: expected unit type `()` found struct `Pin<&mut E>` error[E0533]: expected unit struct, unit variant or constant, found struct variant `Self::V` --> $DIR/self.rs:53:27 | 53 | let _: Self = Self::V; //~ ERROR E0533 | ^^^^^^^