mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 21:16:44 +00:00 
			
		
		
		
	 c599761140
			
		
	
	
		c599761140
		
	
	
	
	
		
			
			This function is now used to check `#[panic_handler]`, `start` lang item, `main`, `#[start]` and intrinsic functions. The diagnosis produced are now closer to the ones produced by trait/impl method signature mismatch.
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // Regression test for #54505 - range borrowing suggestion had
 | |
| // incorrect syntax (missing parentheses).
 | |
| 
 | |
| // This test doesn't use std
 | |
| // (so all Ranges resolve to core::ops::Range...)
 | |
| 
 | |
| #![no_std]
 | |
| #![feature(lang_items)]
 | |
| 
 | |
| use core::ops::RangeBounds;
 | |
| 
 | |
| #[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
 | |
| #[lang = "eh_personality"]
 | |
| extern "C" fn eh_personality() {}
 | |
| #[cfg(target_os = "emscripten")]
 | |
| #[lang = "eh_catch_typeinfo"]
 | |
| static EH_CATCH_TYPEINFO: u8 = 0;
 | |
| 
 | |
| #[panic_handler]
 | |
| fn panic_handler(_: &core::panic::PanicInfo) -> ! {
 | |
|     unimplemented!();
 | |
| }
 | |
| 
 | |
| // take a reference to any built-in range
 | |
| fn take_range(_r: &impl RangeBounds<i8>) {}
 | |
| 
 | |
| 
 | |
| fn main() {
 | |
|     take_range(0..1);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| 
 | |
|     take_range(1..);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| 
 | |
|     take_range(..);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| 
 | |
|     take_range(0..=1);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| 
 | |
|     take_range(..5);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| 
 | |
|     take_range(..=42);
 | |
|     //~^ ERROR mismatched types [E0308]
 | |
|     //~| HELP consider borrowing here
 | |
|     //~| SUGGESTION &(
 | |
| }
 |