mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // This test ensures that `self` is semantically rejected
 | |
| // in contexts with `FnDecl` but outside of associated `fn`s.
 | |
| // FIXME(Centril): For now closures are an exception.
 | |
| 
 | |
| fn main() {}
 | |
| 
 | |
| fn free() {
 | |
|     fn f1(self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f2(mut self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f3(&self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f4(&mut self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f5<'a>(&'a self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f6<'a>(&'a mut self) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f7(self: u8) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f8(mut self: u8) {}
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| }
 | |
| 
 | |
| extern "C" {
 | |
|     fn f1(self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f2(mut self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     //~| ERROR patterns aren't allowed in
 | |
|     fn f3(&self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f4(&mut self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f5<'a>(&'a self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f6<'a>(&'a mut self);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f7(self: u8);
 | |
|     //~^ ERROR `self` parameter is only allowed in associated functions
 | |
|     fn f8(mut self: u8);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| //~| ERROR patterns aren't allowed in
 | |
| }
 | |
| 
 | |
| type X1 = fn(self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X2 = fn(mut self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| //~| ERROR patterns aren't allowed in
 | |
| type X3 = fn(&self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X4 = fn(&mut self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X5 = for<'a> fn(&'a self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X6 = for<'a> fn(&'a mut self);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X7 = fn(self: u8);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| type X8 = fn(mut self: u8);
 | |
| //~^ ERROR `self` parameter is only allowed in associated functions
 | |
| //~| ERROR patterns aren't allowed in
 | 
