Check all files in src/test for borrowck_graphviz_postflow

This attribute causes DOT files to be generated in the top-level
directory. It is intended to be used only temporarily and should never
appear on master.

This will prevent #65071 from occurring again.
This commit is contained in:
Dylan MacKenzie 2019-10-20 10:46:49 -07:00
parent c49187530d
commit c9e361fcd1
3 changed files with 26 additions and 0 deletions

View file

@ -0,0 +1,24 @@
//! Tidy check to prevent creation of unnecessary debug artifacts.
use std::path::{Path, PathBuf};
const GRAPHVIZ_POSTFLOW_MSG: &'static str =
"`borrowck_graphviz_postflow` attribute in test";
pub fn check(path: &Path, bad: &mut bool) {
let test_dir: PathBuf = path.join("test");
super::walk(&test_dir, &mut super::filter_dirs, &mut |entry, contents| {
let filename = entry.path();
let is_rust = filename.extension().map_or(false, |ext| ext == "rs");
if !is_rust {
return;
}
for (i, line) in contents.lines().enumerate() {
if line.contains("borrowck_graphviz_postflow") {
tidy_error!(bad, "{}:{}: {}", filename.display(), i + 1, GRAPHVIZ_POSTFLOW_MSG);
}
}
});
}

View file

@ -31,6 +31,7 @@ macro_rules! tidy_error {
pub mod bins;
pub mod style;
pub mod debug_artifacts;
pub mod errors;
pub mod features;
pub mod cargo;

View file

@ -22,6 +22,7 @@ fn main() {
let verbose = args.iter().any(|s| *s == "--verbose");
bins::check(&path, &mut bad);
style::check(&path, &mut bad);
debug_artifacts::check(&path, &mut bad);
errors::check(&path, &mut bad);
cargo::check(&path, &mut bad);
edition::check(&path, &mut bad);