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