Don't format tests/run-make/*/rmake.rs.
It's reasonable to want to, but in the current implementation this causes multiple problems. - All the `rmake.rs` files are formatted every time even when they haven't changed. This is because they get whitelisted unconditionally in the `OverrideBuilder`, before the changed files get added. - The way `OverrideBuilder` works, if any files gets whitelisted then no unmentioned files will get traversed. This is surprising, and means that the `rmake.rs` entries broke the use of explicit paths to `x fmt`, and also broke `GITHUB_ACTIONS=true git check --fmt`. The commit removes the `rmake.rs` entries, fixes the formatting of a couple of files that were misformatted (not previously caught due to the `GITHUB_ACTIONS` breakage), and bans `!`-prefixed entries in `rustfmt.toml` because they cause all these problems.
This commit is contained in:
parent
4702a1c345
commit
f1b0ca08a4
5 changed files with 16 additions and 21 deletions
|
|
@ -115,8 +115,15 @@ pub fn format(build: &Builder<'_>, check: bool, paths: &[PathBuf]) {
|
|||
let rustfmt_config: RustfmtConfig = t!(toml::from_str(&rustfmt_config));
|
||||
let mut fmt_override = ignore::overrides::OverrideBuilder::new(&build.src);
|
||||
for ignore in rustfmt_config.ignore {
|
||||
if let Some(ignore) = ignore.strip_prefix('!') {
|
||||
fmt_override.add(ignore).expect(ignore);
|
||||
if ignore.starts_with('!') {
|
||||
// A `!`-prefixed entry could be added as a whitelisted entry in `fmt_override`, i.e.
|
||||
// strip the `!` prefix. But as soon as whitelisted entries are added, an
|
||||
// `OverrideBuilder` will only traverse those whitelisted entries, and won't traverse
|
||||
// any files that aren't explicitly mentioned. No bueno! Maybe there's a way to combine
|
||||
// explicit whitelisted entries and traversal of unmentioned files, but for now just
|
||||
// forbid such entries.
|
||||
eprintln!("`!`-prefixed entries are not supported in rustfmt.toml, sorry");
|
||||
crate::exit!(1);
|
||||
} else {
|
||||
fmt_override.add(&format!("!{ignore}")).expect(&ignore);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue