mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			723 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			723 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // Test that certain pattern-match type errors are non-fatal
 | |
| 
 | |
| enum A {
 | |
|     B(isize, isize),
 | |
|     C(isize, isize, isize),
 | |
|     D
 | |
| }
 | |
| 
 | |
| struct S {
 | |
|     a: isize
 | |
| }
 | |
| 
 | |
| fn f(_c: char) {}
 | |
| 
 | |
| fn main() {
 | |
|     match A::B(1, 2) {
 | |
|         A::B(_, _, _) => (), //~ ERROR this pattern has 3 fields, but
 | |
|         A::D(_) => (), //~ ERROR expected tuple struct or tuple variant, found unit variant `A::D`
 | |
|         _ => ()
 | |
|     }
 | |
|     match 'c' {
 | |
|         S { .. } => (),
 | |
|         //~^ ERROR mismatched types
 | |
|         //~| expected `char`, found `S`
 | |
| 
 | |
|         _ => ()
 | |
|     }
 | |
|     f(true);
 | |
|     //~^ ERROR mismatched types
 | |
|     //~| expected `char`, found `bool`
 | |
| 
 | |
|     match () {
 | |
|         E::V => {} //~ ERROR failed to resolve: use of undeclared type `E`
 | |
|     }
 | |
| }
 | 
