diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-03-04 09:26:31 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-03-04 09:30:12 +1100 |
| commit | fc142ebaf8cd18e2e9400e4ee9efb8a4331696d2 (patch) | |
| tree | 674acf2143c0780e3c72b323cf58f664fde8649e | |
| parent | 2f8d1a835b4e7feaf625f74d0d5cb9b84dbc845a (diff) | |
| download | rust-fc142ebaf8cd18e2e9400e4ee9efb8a4331696d2.tar.gz rust-fc142ebaf8cd18e2e9400e4ee9efb8a4331696d2.zip | |
Fix a bug in `x.py fmt` that prevents some files being formatted.
If you have a file in the repository root with the same name as a file somewhere within a directory, the latter currently won't get formatted. I have experienced this multiple times and not understood what was happening; I finally figured out the problem today. This commit fixes the problem.
| -rw-r--r-- | src/bootstrap/format.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/bootstrap/format.rs b/src/bootstrap/format.rs index 30fe6a7a446..530cc829320 100644 --- a/src/bootstrap/format.rs +++ b/src/bootstrap/format.rs @@ -97,7 +97,12 @@ pub fn format(build: &Build, check: bool, paths: &[PathBuf]) { }); for untracked_path in untracked_paths { eprintln!("skip untracked path {} during rustfmt invocations", untracked_path); - ignore_fmt.add(&format!("!{}", untracked_path)).expect(&untracked_path); + // The leading `/` makes it an exact match against the + // repository root, rather than a glob. Without that, if you + // have `foo.rs` in the repository root it will also match + // against anything like `compiler/rustc_foo/src/foo.rs`, + // preventing the latter from being formatted. + ignore_fmt.add(&format!("!/{}", untracked_path)).expect(&untracked_path); } } else { eprintln!("Not in git tree. Skipping git-aware format checks"); |
