diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-09-18 22:19:16 +1000 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-09-18 22:33:05 +1000 |
| commit | a4cb31bb58112b65b4313a2764addf5b72ff7a68 (patch) | |
| tree | d71ccfa9749b8db2c11e906a0759a95ece8ac091 /tests/run-coverage/closure_bug.rs | |
| parent | 4690f97099c2f01a07a8fa272e94e3e5cba61f12 (diff) | |
| download | rust-a4cb31bb58112b65b4313a2764addf5b72ff7a68.tar.gz rust-a4cb31bb58112b65b4313a2764addf5b72ff7a68.zip | |
coverage: Regression test for inconsistent handling of closure spans
Diffstat (limited to 'tests/run-coverage/closure_bug.rs')
| -rw-r--r-- | tests/run-coverage/closure_bug.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/run-coverage/closure_bug.rs b/tests/run-coverage/closure_bug.rs new file mode 100644 index 00000000000..739bc5f0b51 --- /dev/null +++ b/tests/run-coverage/closure_bug.rs @@ -0,0 +1,44 @@ +// Regression test for #115930. +// All of these closures are identical, and should produce identical output in +// the coverage report. However, an unstable sort was causing them to be treated +// inconsistently when preparing coverage spans. + +fn main() { + let truthy = std::env::args().len() == 1; + + let a + = + | + | + if truthy { true } else { false }; + + a(); + if truthy { a(); } + + let b + = + | + | + if truthy { true } else { false }; + + b(); + if truthy { b(); } + + let c + = + | + | + if truthy { true } else { false }; + + c(); + if truthy { c(); } + + let d + = + | + | + if truthy { true } else { false }; + + d(); + if truthy { d(); } +} |
