LL| |#![feature(coverage_attribute)] | |
LL| |// compile-flags: --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| |} | |