42 lines
635 B
Rust
42 lines
635 B
Rust
|
#![feature(coverage_attribute)]
|
||
|
// compile-flags: --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();
|
||
|
}
|