-
Notifications
You must be signed in to change notification settings - Fork 13.4k
normalization: avoid incompletely constraining GAT args #140712
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Reminder, once the PR becomes ready for a review, use |
c180d15
to
5a34adc
Compare
[DO NOT MERGE] bootstrap with `-Znext-solver=globally` A revival of rust-lang#124812. Current status: ~~`./x.py b --stage 2` passes 🎉~~ `try` builds succeed 🎉 🎉 🎉 [first perf run](rust-lang#133502 (comment)) 👻 ### crater This does not detect hangs or memory issues. | date | #crates | #regressions | | ---- | ------- | ------------ | | 2025.04.11 | 100 | 2 | | 2025.04.11 | 1000 | 27 | | 2025.04.17 | 10000 | 456 | | 2025.04.18 | 10000 | 437 | | 2025.04.24 | 10000 | 164 | | 2025.04.26 | 10000 | 108 | | 2025.04.28 | 10000 | 91 | | 2025.05.01 | 10000 | 145 woops | | 2025.05.03 | 624228[^1] | 1585 | | 2025.05.05 | 8964[^2] | 931 | | 2025.05.06 | 4401[^2] | 726 | [^1]: a complete crater run [^2]: only testing crates which may have regressed from the above run ### in-flight changes - rust-lang#140711 - rust-lang#140713 - rust-lang#140712 - rust-lang#136997 - rust-lang#139587 - rust-lang#140497 - rust-lang#124852, unsure whether I actually want to land this PR for now - https://github.com/lcnr/rust/tree/opaque-type-method-call - rust-lang#140260 - rust-lang#140375 - rust-lang#140405 - look into blanket impls for opaque type infer vars as well - rust-lang#140496 - double recursion limit in the new solver r? `@ghost`
☔ The latest upstream changes (presumably #140781) made this pull request unmergeable. Please resolve the merge conflicts. |
5a34adc
to
577c497
Compare
577c497
to
0185484
Compare
@rustbot ready |
[DO NOT MERGE] bootstrap with `-Znext-solver=globally` A revival of rust-lang#124812. Current status: ~~`./x.py b --stage 2` passes 🎉~~ `try` builds succeed 🎉 🎉 🎉 [first perf run](rust-lang#133502 (comment)) 👻 ### crater This does not detect hangs or memory issues. | date | #crates | #regressions | | ---- | ------- | ------------ | | 2025.04.11 | 100 | 2 | | 2025.04.11 | 1000 | 27 | | 2025.04.17 | 10000 | 456 | | 2025.04.18 | 10000 | 437 | | 2025.04.24 | 10000 | 164 | | 2025.04.26 | 10000 | 108 | | 2025.04.28 | 10000 | 91 | | 2025.05.01 | 10000 | 145 woops | | 2025.05.03 | 624228[^1] | 1585 | | 2025.05.05 | 8964[^2] | 931 | | 2025.05.06 | 4401[^2] | 726 | | 2025.05.07 | 2704[^2] | 668 | [^1]: a complete crater run [^2]: only testing crates which may have regressed from the above run ### in-flight changes - rust-lang#140712 - rust-lang#136997 - rust-lang#139587 - rust-lang#140497 - rust-lang#124852, unsure whether I actually want to land this PR for now - https://github.com/lcnr/rust/tree/opaque-type-method-call - rust-lang#140375 - rust-lang#140405 - look into blanket impls for opaque type infer vars as well - rust-lang#140496 - double recursion limit in the new solver r? `@ghost`
sad hack but unfortunately not our responsibility to fix, since this is very old GAT behavior (-- and feels reasonable to want to support, b/c the param-env incompleteness would be kinda over-opinionated, especially w/o @bors r+ rollup |
…piler-errors normalization: avoid incompletely constraining GAT args We need to copy the behavior of rust-lang#125214 in the new solver. This fixes rust-lang/trait-system-refactor-initiative#202 which seems to be the cause of the regression in `deptypes`. r? `@compiler-errors`
…piler-errors normalization: avoid incompletely constraining GAT args We need to copy the behavior of rust-lang#125214 in the new solver. This fixes rust-lang/trait-system-refactor-initiative#202 which seems to be the cause of the regression in `deptypes`. r? ``@compiler-errors``
…mpiler-errors Rollup of 14 pull requests Successful merges: - rust-lang#139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary") - rust-lang#140130 (Add LLDB providers for BTreeMap and BTreeSet) - rust-lang#140685 (Simplify `Vec::as_non_null` implementation and make it `const`) - rust-lang#140712 (normalization: avoid incompletely constraining GAT args) - rust-lang#140768 (Improve `dangerous_implicit_aurorefs` diagnostic output) - rust-lang#140834 (move (or remove) some impl Trait tests) - rust-lang#140910 (Remove `stable` attribute from wasi fs (read_exact|write_all)_at) - rust-lang#140947 (Flush errors before deep normalize in `dropck_outlives`) - rust-lang#140966 (Remove #![feature(let_chains)] from library and src/librustdoc) - rust-lang#140977 ([win] Use a dash instead of slash for linker to avoid breaking lld) - rust-lang#140990 (VxWorks: updates from recent libc versions) - rust-lang#141003 (Improve ternary operator recovery) - rust-lang#141013 (Implement methods to set STARTUPINFO flags for Command API on Windows) - rust-lang#141026 (rustc-dev-guide subtree update) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary") - rust-lang#140685 (Simplify `Vec::as_non_null` implementation and make it `const`) - rust-lang#140712 (normalization: avoid incompletely constraining GAT args) - rust-lang#140768 (Improve `dangerous_implicit_aurorefs` diagnostic output) - rust-lang#140947 (Flush errors before deep normalize in `dropck_outlives`) - rust-lang#140966 (Remove #![feature(let_chains)] from library and src/librustdoc) - rust-lang#140990 (VxWorks: updates from recent libc versions) - rust-lang#141027 (remove `RustfmtState` to reduce `initial_rustfmt` complexity) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary") - rust-lang#140685 (Simplify `Vec::as_non_null` implementation and make it `const`) - rust-lang#140712 (normalization: avoid incompletely constraining GAT args) - rust-lang#140768 (Improve `dangerous_implicit_aurorefs` diagnostic output) - rust-lang#140947 (Flush errors before deep normalize in `dropck_outlives`) - rust-lang#140990 (VxWorks: updates from recent libc versions) - rust-lang#141027 (remove `RustfmtState` to reduce `initial_rustfmt` complexity) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#140712 - lcnr:normalization-gat-args, r=compiler-errors normalization: avoid incompletely constraining GAT args We need to copy the behavior of rust-lang#125214 in the new solver. This fixes rust-lang/trait-system-refactor-initiative#202 which seems to be the cause of the regression in `deptypes`. r? ```@compiler-errors```
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary") - rust-lang#140685 (Simplify `Vec::as_non_null` implementation and make it `const`) - rust-lang#140712 (normalization: avoid incompletely constraining GAT args) - rust-lang#140768 (Improve `dangerous_implicit_aurorefs` diagnostic output) - rust-lang#140947 (Flush errors before deep normalize in `dropck_outlives`) - rust-lang#140990 (VxWorks: updates from recent libc versions) - rust-lang#141027 (remove `RustfmtState` to reduce `initial_rustfmt` complexity) r? `@ghost` `@rustbot` modify labels: rollup
We need to copy the behavior of #125214 in the new solver. This fixes rust-lang/trait-system-refactor-initiative#202 which seems to be the cause of the regression in
deptypes
.r? @compiler-errors