mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	 9dc6e08279
			
		
	
	
		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|       |*/
 | |
| 
 |