mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 04:24:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // Test that things from the prelude aren't in scope. Use many of them
 | |
| // so that renaming some things won't magically make this test fail
 | |
| // for the wrong reason (e.g., if `Add` changes to `Addition`, and
 | |
| // `no_implicit_prelude` stops working, then the `impl Add` will still
 | |
| // fail with the same error message).
 | |
| 
 | |
| #[no_implicit_prelude]
 | |
| mod foo {
 | |
|     mod baz {
 | |
|         struct Test;
 | |
|         impl Add for Test {} //~ ERROR cannot find trait `Add` in this scope
 | |
|         impl Clone for Test {} //~ ERROR expected trait, found derive macro `Clone`
 | |
|         impl Iterator for Test {} //~ ERROR cannot find trait `Iterator` in this scope
 | |
|         impl ToString for Test {} //~ ERROR cannot find trait `ToString` in this scope
 | |
|         impl Writer for Test {} //~ ERROR cannot find trait `Writer` in this scope
 | |
| 
 | |
|         fn foo() {
 | |
|             drop(2) //~ ERROR cannot find function `drop` in this scope
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     struct Test;
 | |
|     impl Add for Test {} //~ ERROR cannot find trait `Add` in this scope
 | |
|     impl Clone for Test {} //~ ERROR expected trait, found derive macro `Clone`
 | |
|     impl Iterator for Test {} //~ ERROR cannot find trait `Iterator` in this scope
 | |
|     impl ToString for Test {} //~ ERROR cannot find trait `ToString` in this scope
 | |
|     impl Writer for Test {} //~ ERROR cannot find trait `Writer` in this scope
 | |
| 
 | |
|     fn foo() {
 | |
|         drop(2) //~ ERROR cannot find function `drop` in this scope
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn qux() {
 | |
|     #[no_implicit_prelude]
 | |
|     mod qux_inner {
 | |
|         struct Test;
 | |
|         impl Add for Test {} //~ ERROR cannot find trait `Add` in this scope
 | |
|         impl Clone for Test {} //~ ERROR expected trait, found derive macro `Clone`
 | |
|         impl Iterator for Test {} //~ ERROR cannot find trait `Iterator` in this scope
 | |
|         impl ToString for Test {} //~ ERROR cannot find trait `ToString` in this scope
 | |
|         impl Writer for Test {} //~ ERROR cannot find trait `Writer` in this scope
 | |
| 
 | |
|         fn foo() {
 | |
|             drop(2) //~ ERROR cannot find function `drop` in this scope
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| fn main() {
 | |
|     // these should work fine
 | |
|     drop(2)
 | |
| }
 | 
