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 { major, minor, patch } 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| |*/