-
Notifications
You must be signed in to change notification settings - Fork 13.3k
support revealing uses of opaques #139587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
[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)) 👻 ### in-flight changes - rust-lang#124852, unsure whether I actually want to land this PR for now - rust-lang#139587 - https://github.com/lcnr/rust/tree/opaque-type-method-call r? `@ghost`
f83cf4b
to
b796696
Compare
This comment has been minimized.
This comment has been minimized.
[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)) 👻 ### in-flight changes - rust-lang#124852, unsure whether I actually want to land this PR for now - rust-lang#139587 - https://github.com/lcnr/rust/tree/opaque-type-method-call r? `@ghost`
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
support revealing uses of opaques in closures based on rust-lang#139484 the following now works, needs **a bit** of cleanup to actually land :3 ```rust fn foo(x: &u32) -> impl Sized + '_ { let _ = || { let temp = 1; // normalization of the return type results // in `opaque<'local1> = &'local2 u32`. foo(&temp); }; x } ``` r? `@compiler-errors`
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (14ea441): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary 2.0%, secondary -1.3%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary 1.1%, secondary 1.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeResults (secondary -0.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 780.245s -> 782.612s (0.30%) |
[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)) 👻 ### in-flight changes - rust-lang#124852, unsure whether I actually want to land this PR for now - rust-lang#139587 - https://github.com/lcnr/rust/tree/opaque-type-method-call r? `@ghost`
cleanup `mir_borrowck` Cleanup pulled out of rust-lang#139587. Best reviewed commit by commit. r? compiler-errors
17793b6
to
e354bf9
Compare
This comment has been minimized.
This comment has been minimized.
[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)) 👻 ### in-flight changes - rust-lang#124852, unsure whether I actually want to land this PR for now - rust-lang#139587 - https://github.com/lcnr/rust/tree/opaque-type-method-call - rust-lang#138845 - https://gist.github.com/lcnr/86f3e56c3b25a7892d8dbfa28c84e1a8 r? `@ghost`
b34b851
to
092d8ce
Compare
5e6d06a
to
1a2f666
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
3a8fea6
to
4028ea1
Compare
@bors try |
⌛ Trying commit 4028ea1 with merge 6cbf54b1453b438241487f195740266bb9d8c8ba... |
support revealing uses of opaques the following now works, needs **a bit** of cleanup to actually land :3 ```rust fn foo(x: &u32) -> impl Sized + '_ { let _ = || { let temp = 1; // normalization of the return type results // in `opaque<'local1> = &'local2 u32`. foo(&temp); }; x } ``` current breakage. ```rust use std::iter::{Map, Once}; struct Type(Vec<Type>); enum TypeTreeValueIter<'a, T> { Once(T), Ref(&'a ()), } impl<'a, T> Iterator for TypeTreeValueIter<'a, T> { type Item = T; fn next(&mut self) -> Option<Self::Item> { loop {} } } fn item<I: Iterator<Item: Iterator>>(x: I) -> <I::Item as Iterator>::Item { loop {} } fn foo<F: FnOnce(T) -> B, T, B>(_: F) {} fn get_type_tree_values<'a>(ty: &'a Type) -> impl Iterator<Item = &'a Type> { // Arg regions in root universe, member region is not. let _: &'a Type = item(std::iter::once(ty).map(get_type_tree_values)); TypeTreeValueIter::<'a, &'a Type>::Once(ty) } fn main() {} ``` r? `@compiler-errors`
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
🚨 Error: database is locked 🆘 If you have any trouble with Crater please ping |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
342ae98
to
81c8235
Compare
This comment has been minimized.
This comment has been minimized.
81c8235
to
3cbbdd3
Compare
This comment has been minimized.
This comment has been minimized.
[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`
3cbbdd3
to
1902fa6
Compare
The job Click to see the possible cause of the failure (guessed by this bot)
|
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🎉 Experiment
|
Requested reviewer is already assigned to this pull request. Please choose another assignee. |
the following now works, needs a bit of cleanup to actually land :3
final breakage?
r? @compiler-errors