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|      1|//
   LL|      1|{
   LL|      1|    Some(7i32);
   LL|      1|    Some(0)
   LL|      1|}
   LL|       |
   LL|      1|fn b() -> Option<i32>
   LL|      1|//
   LL|      1|{
   LL|      1|    Some(7i32)?;
                            ^0
   LL|      1|    Some(0)
   LL|      1|}
   LL|       |
   LL|      1|fn c() -> Option<i32>
   LL|      1|//
   LL|      1|{
   LL|      1|    let _ = Some(7i32)?;
                                    ^0
   LL|      1|    Some(0)
   LL|      1|}
   LL|       |
   LL|      1|fn d() -> Option<i32>
   LL|      1|//
   LL|      1|{
   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|       |}