mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
9dc6e08279
Currently we can't automatically enforce formatting on tests (see #125637), but we can at least keep things relatively tidy by occasionally running the formatter manually. This was done by temporarily commenting out the `"/tests/"` exclusion in `rustfmt.toml`, and then running `x fmt tests/coverage` and `x test coverage --bless`.
49 lines
2.0 KiB
Plaintext
49 lines
2.0 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 { 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| |*/
|
|
|