diff options
Diffstat (limited to 'tests/coverage/issue-93054.coverage')
-rw-r--r-- | tests/coverage/issue-93054.coverage | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/coverage/issue-93054.coverage b/tests/coverage/issue-93054.coverage new file mode 100644 index 000000000..15f225326 --- /dev/null +++ b/tests/coverage/issue-93054.coverage @@ -0,0 +1,31 @@ + LL| |#![allow(dead_code, unreachable_code)] + LL| | + LL| |// Regression test for #93054: Functions using uninhabited types often only have a single, + LL| |// unreachable basic block which doesn't get instrumented. This should not cause llvm-cov to fail. + LL| |// Since these kinds functions can't be invoked anyway, it's ok to not have coverage data for them. + LL| | + LL| |// compile-flags: --edition=2021 + LL| | + LL| |enum Never {} + LL| | + LL| |impl Never { + LL| | fn foo(self) { + LL| | match self {} + LL| | make().map(|never| match never {}); + LL| | } + LL| | + LL| | fn bar(&self) { + LL| | match *self {} + LL| | } + LL| |} + LL| | + LL| 0|async fn foo2(never: Never) { + LL| | match never {} + LL| |} + LL| | + LL| 0|fn make() -> Option<Never> { + LL| 0| None + LL| 0|} + LL| | + LL| 1|fn main() {} + |