]> git.proxmox.com Git - rustc.git/blame - src/test/run-make-fulldeps/coverage/partial_eq.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / src / test / run-make-fulldeps / coverage / partial_eq.rs
CommitLineData
29967ef6
XL
1// This test confirms an earlier problem was resolved, supporting the MIR graph generated by the
2// structure of this test.
3
4#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
5pub struct Version {
6 major: usize,
6a06907d
XL
7 minor: usize,
8 patch: usize,
29967ef6
XL
9}
10
11impl Version {
12 pub fn new(major: usize, minor: usize, patch: usize) -> Self {
13 Self {
14 major,
15 minor,
16 patch,
17 }
18 }
19}
20
21fn main() {
22 let version_3_2_1 = Version::new(3, 2, 1);
23 let version_3_3_0 = Version::new(3, 3, 0);
24
25 println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version_3_3_0);
26}
27
28/*
29
30This test verifies a bug was fixed that otherwise generated this error:
31
32thread 'rustc' panicked at 'No counters provided the source_hash for function:
33 Instance {
34 def: Item(WithOptConstParam {
35 did: DefId(0:101 ~ autocfg[c44a]::version::{impl#2}::partial_cmp),
36 const_param_did: None
37 }),
38 substs: []
39 }'
40The `PartialOrd` derived by `Version` happened to generate a MIR that generated coverage
41without a code region associated with any `Counter`. Code regions were associated with at least
42one expression, which is allowed, but the `function_source_hash` was only passed to the codegen
43(coverage mapgen) phase from a `Counter`s code region. A new method was added to pass the
44`function_source_hash` without a code region, if necessary.
45
46*/