@0,3,4,5⦊fn j(x: u8) {
// non-async versions of `c()`, `d()`, and `f()` to make it similar to async `i()`.
fn c(x: u8) -> u8 {
if x == 8 {
1 // This line appears covered, but the 1-character expression span covering the `1`
// is not executed. (`llvm-cov show` displays a `^0` below the `1` ). This is because
// `fn j()` executes the open brace for the funciton body, followed by the function's
// first executable statement, `match x`. Inner function declarations are not
// "visible" to the MIR for `j()`, so the code region counts all lines between the
// open brace and the first statement as executed, which is, in a sense, true.
// `llvm-cov show` overcomes this kind of situation by showing the actual counts
// of the enclosed coverages, (that is, the `1` expression was not executed, and
// accurately displays a `0`).
} else {
0
}
}
fn d() -> u8 { 1 }
fn f() -> u8 { 1 }
match x⦉@0,3,4,5 {
@6,8⦊y⦉@6,8 if @0,3,4,5⦊c(x) == y + 1⦉@0,3,4,5 => @6,8⦊{ d(); }⦉@6,8
@12⦊y⦉@12 if @1,9,10,11⦊f() == y + 1⦉@1,9,10,11 => @12⦊()⦉@12,
_ => @2⦊()⦉@2,
}
}@14⦊‸⦉@14