rust/tests/coverage/partial_eq.coverage
Zalathar 448d63e946 Tweak various coverage test files for slightly nicer formatting
For coverage tests, splitting code across multiple lines often makes the
resulting coverage report easier to interpret, so we force rustfmt to retain
line breaks by adding dummy line comments with `//`.
2024-05-29 14:34:11 +10:00

53 lines
2.1 KiB
Plaintext

LL| |// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
LL| |// structure of this test.
LL| |
LL| |#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
LL| |pub struct Version {
LL| | major: usize,
LL| | minor: usize,
LL| | patch: usize,
LL| |}
LL| |
LL| |impl Version {
LL| 2| pub fn new(major: usize, minor: usize, patch: usize) -> Self {
LL| 2| Self {
LL| 2| major,
LL| 2| minor,
LL| 2| patch,
LL| 2| }
LL| 2| }
LL| |}
LL| |
LL| 1|fn main() {
LL| 1| let version_3_2_1 = Version::new(3, 2, 1);
LL| 1| let version_3_3_0 = Version::new(3, 3, 0);
LL| 1|
LL| 1| println!(
LL| 1| "{:?} < {:?} = {}",
LL| 1| version_3_2_1,
LL| 1| version_3_3_0,
LL| 1| version_3_2_1 < version_3_3_0, //
LL| 1| );
LL| 1|}
LL| |
LL| |/*
LL| |
LL| |This test verifies a bug was fixed that otherwise generated this error:
LL| |
LL| |thread 'rustc' panicked at 'No counters provided the source_hash for function:
LL| | Instance {
LL| | def: Item(WithOptConstParam {
LL| | did: DefId(0:101 ~ autocfg[c44a]::version::{impl#2}::partial_cmp),
LL| | const_param_did: None
LL| | }),
LL| | args: []
LL| | }'
LL| |The `PartialOrd` derived by `Version` happened to generate a MIR that generated coverage
LL| |without a code region associated with any `Counter`. Code regions were associated with at least
LL| |one expression, which is allowed, but the `function_source_hash` was only passed to the codegen
LL| |(coverage mapgen) phase from a `Counter`s code region. A new method was added to pass the
LL| |`function_source_hash` without a code region, if necessary.
LL| |
LL| |*/