diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-05-28 17:12:58 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-05-28 17:12:58 +0200 |
| commit | c755bbb36c939d8d3adc37cf044c65b5f597dc8c (patch) | |
| tree | b11febd1205f15af8903a6bd1bc4390f3c0820ec | |
| parent | fbf1b1a7193cda17008ab590e06ad28d9924023b (diff) | |
| download | rust-c755bbb36c939d8d3adc37cf044c65b5f597dc8c.tar.gz rust-c755bbb36c939d8d3adc37cf044c65b5f597dc8c.zip | |
Add checks to ensure the error_codes checker is "clean"
| -rw-r--r-- | src/tools/tidy/src/error_codes_check.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/tools/tidy/src/error_codes_check.rs b/src/tools/tidy/src/error_codes_check.rs index 55f824b63f2..02561b37bee 100644 --- a/src/tools/tidy/src/error_codes_check.rs +++ b/src/tools/tidy/src/error_codes_check.rs @@ -114,13 +114,18 @@ fn extract_error_codes( .expect("failed to canonicalize error explanation file path"); match read_to_string(&path) { Ok(content) => { - if !IGNORE_EXPLANATION_CHECK.contains(&err_code.as_str()) - && !check_if_error_code_is_test_in_explanation(&content, &err_code) - { + let has_test = check_if_error_code_is_test_in_explanation(&content, &err_code); + if !has_test && !IGNORE_EXPLANATION_CHECK.contains(&err_code.as_str()) { errors.push(format!( "`{}` doesn't use its own error code in compile_fail example", path.display(), )); + } else if has_test && IGNORE_EXPLANATION_CHECK.contains(&err_code.as_str()) { + errors.push(format!( + "`{}` has a compile_fail example with its own error code, it shouldn't \ + be listed in IGNORE_EXPLANATION_CHECK!", + path.display(), + )); } if check_error_code_explanation(&content, error_codes, err_code) { errors.push(format!( @@ -198,6 +203,11 @@ pub fn check(paths: &[&Path], bad: &mut bool) { for (err_code, nb) in &error_codes { if !*nb && !EXEMPTED_FROM_TEST.contains(&err_code.as_str()) { errors.push(format!("Error code {} needs to have at least one UI test!", err_code)); + } else if *nb && EXEMPTED_FROM_TEST.contains(&err_code.as_str()) { + errors.push(format!( + "Error code {} has a UI test, it shouldn't be listed into EXEMPTED_FROM_TEST!", + err_code + )); } } } |
