mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	This also removes some manipulation of the function signature span that only made sense in the context of merging non-adjacent spans.
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
   LL|       |#![feature(coverage_attribute)]
 | 
						|
   LL|       |//@ edition: 2021
 | 
						|
   LL|       |
 | 
						|
   LL|       |// Regression test for inconsistent handling of function signature spans that
 | 
						|
   LL|       |// are followed by code using the `?` operator.
 | 
						|
   LL|       |//
 | 
						|
   LL|       |// For each of these similar functions, the line containing the function
 | 
						|
   LL|       |// signature should be handled in the same way.
 | 
						|
   LL|       |
 | 
						|
   LL|      1|fn a() -> Option<i32>
 | 
						|
   LL|       |//
 | 
						|
   LL|       |{
 | 
						|
   LL|      1|    Some(7i32);
 | 
						|
   LL|      1|    Some(0)
 | 
						|
   LL|      1|}
 | 
						|
   LL|       |
 | 
						|
   LL|      1|fn b() -> Option<i32>
 | 
						|
   LL|       |//
 | 
						|
   LL|       |{
 | 
						|
   LL|      1|    Some(7i32)?;
 | 
						|
                            ^0
 | 
						|
   LL|      1|    Some(0)
 | 
						|
   LL|      1|}
 | 
						|
   LL|       |
 | 
						|
   LL|      1|fn c() -> Option<i32>
 | 
						|
   LL|       |//
 | 
						|
   LL|       |{
 | 
						|
   LL|      1|    let _ = Some(7i32)?;
 | 
						|
                                    ^0
 | 
						|
   LL|      1|    Some(0)
 | 
						|
   LL|      1|}
 | 
						|
   LL|       |
 | 
						|
   LL|      1|fn d() -> Option<i32>
 | 
						|
   LL|       |//
 | 
						|
   LL|       |{
 | 
						|
   LL|      1|    let _: () = ();
 | 
						|
   LL|      1|    Some(7i32)?;
 | 
						|
                            ^0
 | 
						|
   LL|      1|    Some(0)
 | 
						|
   LL|      1|}
 | 
						|
   LL|       |
 | 
						|
   LL|       |#[coverage(off)]
 | 
						|
   LL|       |fn main() {
 | 
						|
   LL|       |    a();
 | 
						|
   LL|       |    b();
 | 
						|
   LL|       |    c();
 | 
						|
   LL|       |    d();
 | 
						|
   LL|       |}
 | 
						|
 |