// This test ensures that `self` is syntactically accepted in all places an `FnDecl` is parsed. // FIXME(Centril): For now closures are an exception. // check-pass fn main() {} #[cfg(FALSE)] fn free() { fn f(self) {} fn f(mut self) {} fn f(&self) {} fn f(&mut self) {} fn f(&'a self) {} fn f(&'a mut self) {} fn f(self: u8) {} fn f(mut self: u8) {} } #[cfg(FALSE)] extern "C" { fn f(self); fn f(mut self); fn f(&self); fn f(&mut self); fn f(&'a self); fn f(&'a mut self); fn f(self: u8); fn f(mut self: u8); } #[cfg(FALSE)] trait X { fn f(self) {} fn f(mut self) {} fn f(&self) {} fn f(&mut self) {} fn f(&'a self) {} fn f(&'a mut self) {} fn f(self: u8) {} fn f(mut self: u8) {} } #[cfg(FALSE)] impl X for Y { fn f(self) {} fn f(mut self) {} fn f(&self) {} fn f(&mut self) {} fn f(&'a self) {} fn f(&'a mut self) {} fn f(self: u8) {} fn f(mut self: u8) {} } #[cfg(FALSE)] impl X for Y { type X = fn(self); type X = fn(mut self); type X = fn(&self); type X = fn(&mut self); type X = fn(&'a self); type X = fn(&'a mut self); type X = fn(self: u8); type X = fn(mut self: u8); }