Repository navigation
abby DSL: sanity checks on forall where clauses - #163257
Merged
Merged
Conversation
khyperia
commented
Sep 24, 2026
| // For example, right now, if the user writes `forall<'a> where Foo<'a>: 'b`, that's not gonna | ||
| // work - that should be destructured into `where 'a: 'b`, whether by hand (and checked it was | ||
| // indeed done so, via compiler) or automatically by the test framework, unsure, but something. | ||
| fn lower_test_binder_assumptions( |
Member
Author
There was a problem hiding this comment.
fyi to reviewers: there are no changes to this function, I just deduped the Trait/Use bound handling into a helper fn, and changed the wording to remove the word "yet".
bit-aloo
reviewed
Sep 25, 2026
khyperia
force-pushed
the
abby-check-where-clause
branch
from
October 1, 2026 08:38
fb25c94 to
331ac7a
Compare
This comment has been minimized.
This comment has been minimized.
khyperia
force-pushed
the
abby-check-where-clause
branch
2 times, most recently
from
October 1, 2026 11:12
28a04e9 to
30c3ff8
Compare
Member
Author
|
forgor to say @rustbot ready last week, whoops |
Member
|
@bors r=BoxyUwU,bit-aloo rollup thx bit-aloo for the reviews |
Contributor
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 6, 2026
…,bit-aloo abby DSL: sanity checks on forall where clauses fixes rust-lang/project-assumptions-on-binders#43 took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on r? @BoxyUwU
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 6, 2026
…uwer Rollup of 13 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 6, 2026
…r=BoxyUwU,bit-aloo abby DSL: sanity checks on forall where clauses fixes rust-lang/project-assumptions-on-binders#43 took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on r? @BoxyUwU
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 6, 2026
…uwer Rollup of 17 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163870 (Add if-installed:auto:spellcheck to pre-push script) - #163874 (explicitly check for fresh vars in canonicalize) - #163880 (Don't add pkgs.rustc to PATH in nix dev shell)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 6, 2026
…uwer Rollup of 17 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163870 (Add if-installed:auto:spellcheck to pre-push script) - #163874 (explicitly check for fresh vars in canonicalize) - #163880 (Don't add pkgs.rustc to PATH in nix dev shell)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 6, 2026
…uwer Rollup of 17 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163870 (Add if-installed:auto:spellcheck to pre-push script) - #163874 (explicitly check for fresh vars in canonicalize) - #163880 (Don't add pkgs.rustc to PATH in nix dev shell)
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 7, 2026
…r=BoxyUwU,bit-aloo abby DSL: sanity checks on forall where clauses fixes rust-lang/project-assumptions-on-binders#43 took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on r? @BoxyUwU
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 7, 2026
…uwer Rollup of 25 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163806 (even more `tests/crashes` migration for `-Znext-solver`) - #162156 (add IBM f128 type) - #163508 (Document the `rustc_on_unimplemented` attribute.) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #163916 (Shrink `PartialRes` and its alignment) - #149753 (On name resolution error in parameter list, suggest possible `const` typo and avoid unnecessary second error) - #152557 (Oneshot `is_ready`) - #157273 (Stabilize `optimize` attribute) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163343 (`unit` and `[1 x unit]` layouts are incompatible on big-endian targets) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163809 (Switch TLS implementation for wasi and bump SDK version to 34) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163869 (INSTALL.md: use UCRT64 instead of MINGW64 in MSYS2 section) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Oct 7, 2026
…r=BoxyUwU,bit-aloo abby DSL: sanity checks on forall where clauses fixes rust-lang/project-assumptions-on-binders#43 took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on r? @BoxyUwU
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 7, 2026
…uwer Rollup of 24 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163806 (even more `tests/crashes` migration for `-Znext-solver`) - #163508 (Document the `rustc_on_unimplemented` attribute.) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #163916 (Shrink `PartialRes` and its alignment) - #149753 (On name resolution error in parameter list, suggest possible `const` typo and avoid unnecessary second error) - #152557 (Oneshot `is_ready`) - #157273 (Stabilize `optimize` attribute) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163343 (`unit` and `[1 x unit]` layouts are incompatible on big-endian targets) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163809 (Switch TLS implementation for wasi and bump SDK version to 34) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163869 (INSTALL.md: use UCRT64 instead of MINGW64 in MSYS2 section) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 7, 2026
…uwer Rollup of 24 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163806 (even more `tests/crashes` migration for `-Znext-solver`) - #163508 (Document the `rustc_on_unimplemented` attribute.) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #163916 (Shrink `PartialRes` and its alignment) - #149753 (On name resolution error in parameter list, suggest possible `const` typo and avoid unnecessary second error) - #152557 (Oneshot `is_ready`) - #157273 (Stabilize `optimize` attribute) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163343 (`unit` and `[1 x unit]` layouts are incompatible on big-endian targets) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163809 (Switch TLS implementation for wasi and bump SDK version to 34) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163869 (INSTALL.md: use UCRT64 instead of MINGW64 in MSYS2 section) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 7, 2026
…uwer Rollup of 24 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163806 (even more `tests/crashes` migration for `-Znext-solver`) - #163508 (Document the `rustc_on_unimplemented` attribute.) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #163916 (Shrink `PartialRes` and its alignment) - #149753 (On name resolution error in parameter list, suggest possible `const` typo and avoid unnecessary second error) - #152557 (Oneshot `is_ready`) - #157273 (Stabilize `optimize` attribute) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163343 (`unit` and `[1 x unit]` layouts are incompatible on big-endian targets) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163809 (Switch TLS implementation for wasi and bump SDK version to 34) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163869 (INSTALL.md: use UCRT64 instead of MINGW64 in MSYS2 section) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 7, 2026
…uwer Rollup of 24 pull requests Successful merges: - #163090 (Run LLDB debuginfo tests on `x86_64-pc-windows-msvc` in CI) - #163806 (even more `tests/crashes` migration for `-Znext-solver`) - #163508 (Document the `rustc_on_unimplemented` attribute.) - #163794 (Use `target_family = "wasm"` instead of `target_arch = "wasm32"`) - #163863 (use the type name instead of `Self` in constructor paths again) - #163864 (Remove CLAUDE.md) - #163877 (Add regression test for duplicated rustdoc search results between std and core) - #163916 (Shrink `PartialRes` and its alignment) - #149753 (On name resolution error in parameter list, suggest possible `const` typo and avoid unnecessary second error) - #152557 (Oneshot `is_ready`) - #157273 (Stabilize `optimize` attribute) - #162000 (peel_transparent_wrappers only works on non-1ZST) - #163257 (abby DSL: sanity checks on forall where clauses) - #163343 (`unit` and `[1 x unit]` layouts are incompatible on big-endian targets) - #163348 (perf:cache FFI safety results in improper_ctypes lint) - #163768 (Move more `rustdoc-html` tests in the right location) - #163778 (check is_indirect_first_projection when replacing in RefProp) - #163789 (cg_llvm: Avoid `as_c_char_ptr` in several places) - #163807 (Add `has_reliable_f16b` for Arm) - #163809 (Switch TLS implementation for wasi and bump SDK version to 34) - #163826 (Update books) - #163849 (ci: update to PowerShell 7.6.6) - #163869 (INSTALL.md: use UCRT64 instead of MINGW64 in MSYS2 section) - #163870 (Add if-installed:auto:spellcheck to pre-push script)
This comment has been minimized.
This comment has been minimized.
khyperia
force-pushed
the
abby-check-where-clause
branch
from
October 8, 2026 04:48
30c3ff8 to
caa9037
Compare
Collaborator
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
Member
Author
|
fairly confident it's ok to self-re-r+ after the rebase, was a very straightforward rebase and the range-diff is basically empty @bors r=BoxyUwU,bit-aloo rollup |
Contributor
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
…uwer Rollup of 11 pull requests Successful merges: - #162741 (codegen: tell LLVM that the discriminant is a power of two) - #162758 (Split PassMode::IndirectUnsized out of PassMode::Indirect) - #163931 (Move `loop_hint_attrs` from `Terminator` into `TerminatorKind::Goto`) - #163028 (autodiff: fix sysroot candidates in libEnzyme not found error) - #163257 (abby DSL: sanity checks on forall where clauses) - #163841 ([rustdoc] Fix more `incoherent_impl` linking) - #163908 (Update Enzyme submodule) - #163935 (Use BasicBlock::start_location and Location::START) - #163949 (disable next-solver with higher-ranked-assumptions) - #163951 (relax_elf_relocations is x86-only) - #163968 (Remove needs-triage label from relnotes issues)
rust-bors Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
Rollup merge of #163257 - khyperia:abby-check-where-clause, r=BoxyUwU,bit-aloo abby DSL: sanity checks on forall where clauses fixes rust-lang/project-assumptions-on-binders#43 took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on r? @BoxyUwU
makai410
pushed a commit
to makai410/rustc_public
that referenced
this pull request
Oct 9, 2026
…uwer Rollup of 11 pull requests Successful merges: - rust-lang/rust#162741 (codegen: tell LLVM that the discriminant is a power of two) - rust-lang/rust#162758 (Split PassMode::IndirectUnsized out of PassMode::Indirect) - rust-lang/rust#163931 (Move `loop_hint_attrs` from `Terminator` into `TerminatorKind::Goto`) - rust-lang/rust#163028 (autodiff: fix sysroot candidates in libEnzyme not found error) - rust-lang/rust#163257 (abby DSL: sanity checks on forall where clauses) - rust-lang/rust#163841 ([rustdoc] Fix more `incoherent_impl` linking) - rust-lang/rust#163908 (Update Enzyme submodule) - rust-lang/rust#163935 (Use BasicBlock::start_location and Location::START) - rust-lang/rust#163949 (disable next-solver with higher-ranked-assumptions) - rust-lang/rust#163951 (relax_elf_relocations is x86-only) - rust-lang/rust#163968 (Remove needs-triage label from relnotes issues)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fixes rust-lang/project-assumptions-on-binders#43
took the opportunity to clean up a bit too, so the diff is a bit bigger than it strictly needs to be
this PR enforces that the LHS of forall where clauses must be a placeholder (or toplevel param), an alias, or a lifetime
also, after review, this PR now enforces that all implied bounds in where clauses are also explicitly present as well, enforcing that there's no sneaky bounds going on
r? @BoxyUwU