error: `self` parameter is only allowed in associated functions
  --> $DIR/self-param-semantic-fail.rs:8:11
   |
LL |     fn f1(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/self-param-semantic-fail.rs:10:11
   |
LL |     fn f2(mut 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/self-param-semantic-fail.rs:12:11
   |
LL |     fn f3(&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/self-param-semantic-fail.rs:14:11
   |
LL |     fn f4(&mut 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/self-param-semantic-fail.rs:16:15
   |
LL |     fn f5<'a>(&'a 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/self-param-semantic-fail.rs:18:15
   |
LL |     fn f6<'a>(&'a mut 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/self-param-semantic-fail.rs:20:11
   |
LL |     fn f7(self: u8) {}
   |           ^^^^ 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/self-param-semantic-fail.rs:22:11
   |
LL |     fn f8(mut self: u8) {}
   |           ^^^^^^^^ 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/self-param-semantic-fail.rs:27:11
   |
LL |     fn f1(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/self-param-semantic-fail.rs:29:11
   |
LL |     fn f2(mut self);
   |           ^^^^^^^^ not semantically valid as function parameter
   |
   = note: associated functions are those in `impl` or `trait` definitions

error[E0130]: patterns aren't allowed in foreign function declarations
  --> $DIR/self-param-semantic-fail.rs:29:11
   |
LL |     fn f2(mut self);
   |           ^^^^^^^^ pattern not allowed in foreign function

error: `self` parameter is only allowed in associated functions
  --> $DIR/self-param-semantic-fail.rs:32:11
   |
LL |     fn f3(&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/self-param-semantic-fail.rs:34:11
   |
LL |     fn f4(&mut 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/self-param-semantic-fail.rs:36:15
   |
LL |     fn f5<'a>(&'a 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/self-param-semantic-fail.rs:38:15
   |
LL |     fn f6<'a>(&'a mut 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/self-param-semantic-fail.rs:40:11
   |
LL |     fn f7(self: u8);
   |           ^^^^ 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/self-param-semantic-fail.rs:42:11
   |
LL |     fn f8(mut self: u8);
   |           ^^^^^^^^ not semantically valid as function parameter
   |
   = note: associated functions are those in `impl` or `trait` definitions

error[E0130]: patterns aren't allowed in foreign function declarations
  --> $DIR/self-param-semantic-fail.rs:42:11
   |
LL |     fn f8(mut self: u8);
   |           ^^^^^^^^ pattern not allowed in foreign function

error: `self` parameter is only allowed in associated functions
  --> $DIR/self-param-semantic-fail.rs:47:14
   |
LL | type X1 = fn(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/self-param-semantic-fail.rs:49:14
   |
LL | type X2 = fn(mut self);
   |              ^^^^^^^^ not semantically valid as function parameter
   |
   = note: associated functions are those in `impl` or `trait` definitions

error[E0561]: patterns aren't allowed in function pointer types
  --> $DIR/self-param-semantic-fail.rs:49:14
   |
LL | type X2 = fn(mut self);
   |              ^^^^^^^^

error: `self` parameter is only allowed in associated functions
  --> $DIR/self-param-semantic-fail.rs:52:14
   |
LL | type X3 = fn(&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/self-param-semantic-fail.rs:54:14
   |
LL | type X4 = fn(&mut 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/self-param-semantic-fail.rs:56:22
   |
LL | type X5 = for<'a> fn(&'a 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/self-param-semantic-fail.rs:58:22
   |
LL | type X6 = for<'a> fn(&'a mut 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/self-param-semantic-fail.rs:60:14
   |
LL | type X7 = fn(self: u8);
   |              ^^^^ 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/self-param-semantic-fail.rs:62:14
   |
LL | type X8 = fn(mut self: u8);
   |              ^^^^^^^^ not semantically valid as function parameter
   |
   = note: associated functions are those in `impl` or `trait` definitions

error[E0561]: patterns aren't allowed in function pointer types
  --> $DIR/self-param-semantic-fail.rs:62:14
   |
LL | type X8 = fn(mut self: u8);
   |              ^^^^^^^^

error: aborting due to 28 previous errors

Some errors have detailed explanations: E0130, E0561.
For more information about an error, try `rustc --explain E0130`.
