Skip to content

bootstrap: Don't produce mutated/filtered PathSets during command-line matching - #160430

Merged
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
Zalathar:filtration
Aug 5, 2026
Merged

bootstrap: Don't produce mutated/filtered PathSets during command-line matching#160430
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
Zalathar:filtration

Conversation

@Zalathar

@Zalathar Zalathar commented Aug 3, 2026

Copy link
Copy Markdown
Member

A single CommandLineStep can register ”multiple paths” along two different axes:

  • Registering multiple PathSets
  • Registering an individual PathSet containing multiple paths

In the latter case (a PathSet containing multiple paths), the intent is that those paths represent multiple names for the same unit of work, not separate units of work. It therefore does not make sense to create a modified copy of the PathSet that removes some paths, which is what the path-matching code currently does.

This PR therefore removes the code for producing filtered copies of a PathSet. If a multi-path PathSet is matched by a command-line selector, the entire PathSet will be considered matched.

The only steps that register multi-path PathSets are rustdoc-related ones, and we can be pretty confident that they aren't relying on the current (questionable) behaviour.

There should be no change to user-facing bootstrap behaviour.

This is not meant as a 1:1 migration. Think of it as removing some older tests
of questionable value, then using them as inspiration for some new
snapshot-test cases.
For this step, skipping "rustdoc" should prevent `src/librustdoc` from being
tested.
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Aug 3, 2026
@rustbot

rustbot commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

r? @clubby789

rustbot has assigned @clubby789.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: bootstrap
  • bootstrap expanded to 6 candidates
  • Random selection from Mark-Simulacrum, clubby789

@jieyouxu jieyouxu self-assigned this Aug 3, 2026

@jieyouxu jieyouxu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this seems sensible
@bors r+ rollup

View changes since this review

@rust-bors

rust-bors Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 6c07a43 has been approved by jieyouxu

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 10. This pull request will be tested once the tree is reopened.

Reason for tree closure: manually handling queue due to backlog

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 4, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 4, 2026
bootstrap: Don't produce mutated/filtered PathSets during command-line matching

A single CommandLineStep can register ”multiple paths” along two different axes:
- Registering multiple `PathSet`s
- Registering an individual `PathSet` containing multiple paths

In the latter case (a PathSet containing multiple paths), the intent is that those paths represent multiple names for the *same* unit of work, not separate units of work. It therefore does not make sense to create a modified copy of the PathSet that removes some paths, which is what the path-matching code currently does.

This PR therefore removes the code for producing filtered copies of a PathSet. If a multi-path PathSet is matched by a command-line selector, the entire PathSet will be considered matched.

The only steps that register multi-path PathSets are rustdoc-related ones, and we can be pretty confident that they aren't relying on the current (questionable) behaviour.

There should be no change to user-facing bootstrap behaviour.
rust-bors Bot pushed a commit that referenced this pull request Aug 5, 2026
…uwer

Rollup of 22 pull requests

Successful merges:

 - #160426 (`rust-analyzer` subtree update)
 - #160372 (Derive the allocator used by tools from rustc's allocator)
 - #146882 (fully deprecate the legacy integral modules)
 - #158727 (std: use `readdir` on nearly all UNIX platforms)
 - #159727 (Various steps in moving away from the big reflection enum to reflection functions)
 - #160443 (normalize in relations, not generalize, when relating infer with alias)
 - #160457 (implement -Zllvm-target-feature)
 - #160480 (Single-pass ASCII lower/upper case conversion)
 - #160502 (Reduce number of miri tests executed on PR CI)
 - #157430 (std::random: use little-endian for reproducibility)
 - #158110 (fix macro attribute feature-gate span)
 - #159975 (Use real ThinVec in StmtDebugInfos)
 - #160001 (Suggest mutable method when iterating over binding)
 - #160024 (Fix mono reachability with no-op landing pads)
 - #160154 (Add regression test for HRTB associated type projection closure)
 - #160176 (No more `tests/ui/issues`!)
 - #160326 (Remove hidden_glob_reexports)
 - #160407 (Add regression tests for a number of ICEs and diagnostics issues labelled `E-needs-test`)
 - #160430 (bootstrap: Don't produce mutated/filtered PathSets during command-line matching)
 - #160472 (Minor fixes to `core::io` & `alloc::io` Documentation)
 - #160486 (Remove unused `FreeRegionsVisitor`)
 - #160496 (clarify non-determinism docs for algebraic operations)

Failed merges:

 - #160501 (Add bootstrap CLI snapshot test for testing miri)
@rust-bors
rust-bors Bot merged commit e7e5ffb into rust-lang:main Aug 5, 2026
13 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Aug 5, 2026
rust-timer added a commit that referenced this pull request Aug 5, 2026
Rollup merge of #160430 - Zalathar:filtration, r=jieyouxu

bootstrap: Don't produce mutated/filtered PathSets during command-line matching

A single CommandLineStep can register ”multiple paths” along two different axes:
- Registering multiple `PathSet`s
- Registering an individual `PathSet` containing multiple paths

In the latter case (a PathSet containing multiple paths), the intent is that those paths represent multiple names for the *same* unit of work, not separate units of work. It therefore does not make sense to create a modified copy of the PathSet that removes some paths, which is what the path-matching code currently does.

This PR therefore removes the code for producing filtered copies of a PathSet. If a multi-path PathSet is matched by a command-line selector, the entire PathSet will be considered matched.

The only steps that register multi-path PathSets are rustdoc-related ones, and we can be pretty confident that they aren't relying on the current (questionable) behaviour.

There should be no change to user-facing bootstrap behaviour.
RalfJung pushed a commit to rust-lang/miri that referenced this pull request Aug 5, 2026
…uwer

Rollup of 22 pull requests

Successful merges:

 - rust-lang/rust#160426 (`rust-analyzer` subtree update)
 - rust-lang/rust#160372 (Derive the allocator used by tools from rustc's allocator)
 - rust-lang/rust#146882 (fully deprecate the legacy integral modules)
 - rust-lang/rust#158727 (std: use `readdir` on nearly all UNIX platforms)
 - rust-lang/rust#159727 (Various steps in moving away from the big reflection enum to reflection functions)
 - rust-lang/rust#160443 (normalize in relations, not generalize, when relating infer with alias)
 - rust-lang/rust#160457 (implement -Zllvm-target-feature)
 - rust-lang/rust#160480 (Single-pass ASCII lower/upper case conversion)
 - rust-lang/rust#160502 (Reduce number of miri tests executed on PR CI)
 - rust-lang/rust#157430 (std::random: use little-endian for reproducibility)
 - rust-lang/rust#158110 (fix macro attribute feature-gate span)
 - rust-lang/rust#159975 (Use real ThinVec in StmtDebugInfos)
 - rust-lang/rust#160001 (Suggest mutable method when iterating over binding)
 - rust-lang/rust#160024 (Fix mono reachability with no-op landing pads)
 - rust-lang/rust#160154 (Add regression test for HRTB associated type projection closure)
 - rust-lang/rust#160176 (No more `tests/ui/issues`!)
 - rust-lang/rust#160326 (Remove hidden_glob_reexports)
 - rust-lang/rust#160407 (Add regression tests for a number of ICEs and diagnostics issues labelled `E-needs-test`)
 - rust-lang/rust#160430 (bootstrap: Don't produce mutated/filtered PathSets during command-line matching)
 - rust-lang/rust#160472 (Minor fixes to `core::io` & `alloc::io` Documentation)
 - rust-lang/rust#160486 (Remove unused `FreeRegionsVisitor`)
 - rust-lang/rust#160496 (clarify non-determinism docs for algebraic operations)

Failed merges:

 - rust-lang/rust#160501 (Add bootstrap CLI snapshot test for testing miri)
@Zalathar
Zalathar deleted the filtration branch August 5, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants