| #![feature(coverage_attribute)] |
| //@ edition: 2021 |
| |
| // Regression test for inconsistent handling of function signature spans that |
| // are followed by code using the `?` operator. |
| // |
| // For each of these similar functions, the line containing the function |
| // signature should be handled in the same way. |
| |
| fn a() -> Option<i32> |
| // |
| { |
| Some(7i32); |
| Some(0) |
| } |
| |
| fn b() -> Option<i32> |
| // |
| { |
| Some(7i32)?; |
| Some(0) |
| } |
| |
| fn c() -> Option<i32> |
| // |
| { |
| let _ = Some(7i32)?; |
| Some(0) |
| } |
| |
| fn d() -> Option<i32> |
| // |
| { |
| let _: () = (); |
| Some(7i32)?; |
| Some(0) |
| } |
| |
| #[coverage(off)] |
| fn main() { |
| a(); |
| b(); |
| c(); |
| d(); |
| } |