1 // This test ensures that `self` is semantically rejected
2 // in contexts with `FnDecl` but outside of associated `fn`s.
3 // FIXME(Centril): For now closures are an exception.
9 //~^ ERROR `self` parameter only allowed in associated `fn`s
11 //~^ ERROR `self` parameter only allowed in associated `fn`s
13 //~^ ERROR `self` parameter only allowed in associated `fn`s
15 //~^ ERROR `self` parameter only allowed in associated `fn`s
16 fn f5<'a>(&'a self) {}
17 //~^ ERROR `self` parameter only allowed in associated `fn`s
18 fn f6<'a>(&'a mut self) {}
19 //~^ ERROR `self` parameter only allowed in associated `fn`s
21 //~^ ERROR `self` parameter only allowed in associated `fn`s
22 fn f8(mut self: u8) {}
23 //~^ ERROR `self` parameter only allowed in associated `fn`s
28 //~^ ERROR `self` parameter only allowed in associated `fn`s
30 //~^ ERROR `self` parameter only allowed in associated `fn`s
31 //~| ERROR patterns aren't allowed in
33 //~^ ERROR `self` parameter only allowed in associated `fn`s
35 //~^ ERROR `self` parameter only allowed in associated `fn`s
37 //~^ ERROR `self` parameter only allowed in associated `fn`s
38 fn f6<'a>(&'a mut self);
39 //~^ ERROR `self` parameter only allowed in associated `fn`s
41 //~^ ERROR `self` parameter only allowed in associated `fn`s
43 //~^ ERROR `self` parameter only allowed in associated `fn`s
44 //~| ERROR patterns aren't allowed in
48 //~^ ERROR `self` parameter only allowed in associated `fn`s
49 type X2 = fn(mut self);
50 //~^ ERROR `self` parameter only allowed in associated `fn`s
51 //~| ERROR patterns aren't allowed in
53 //~^ ERROR `self` parameter only allowed in associated `fn`s
54 type X4 = fn(&mut self);
55 //~^ ERROR `self` parameter only allowed in associated `fn`s
56 type X5 = for<'a> fn(&'a self);
57 //~^ ERROR `self` parameter only allowed in associated `fn`s
58 type X6 = for<'a> fn(&'a mut self);
59 //~^ ERROR `self` parameter only allowed in associated `fn`s
60 type X7 = fn(self: u8);
61 //~^ ERROR `self` parameter only allowed in associated `fn`s
62 type X8 = fn(mut self: u8);
63 //~^ ERROR `self` parameter only allowed in associated `fn`s
64 //~| ERROR patterns aren't allowed in