-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Universes #55517
Universes #55517
Conversation
r? @eddyb (rust_highfive has picked a reviewer for you, use r? to override) |
r? @scalexm |
(NB: This builds on #55305) |
This comment has been minimized.
This comment has been minimized.
b51c2c4
to
4963f5d
Compare
This comment has been minimized.
This comment has been minimized.
1c7b636
to
0342023
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
0342023
to
89c5dec
Compare
@bors try |
⌛ Trying commit 89c5decf7f558fa6d0e04205ce54cc299bd772e2 with merge dc8b02d6f1e93f212fc39844ea688b634b4a03c7... |
☀️ Test successful - status-travis |
@craterbot run start=master#f6e9a6e41cd9b1fb687e296b5a6d4c6ad399f862 end=try#dc8b02d6f1e93f212fc39844ea688b634b4a03c7 mode=check-only |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
left some (very minor) nits on tests
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🎉 Experiment
|
Crater results all look spurious. |
89c5dec
to
450a597
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Tested on commit rust-lang/rust@c0bbc39. Direct link to PR: <rust-lang/rust#55517> 💔 clippy-driver on windows: test-fail → build-fail (cc @Manishearth @llogiq @mcarton @oli-obk, @rust-lang/infra). 💔 clippy-driver on linux: test-fail → build-fail (cc @Manishearth @llogiq @mcarton @oli-obk, @rust-lang/infra).
@matthiaskrgr are you working on fixing the toolstate change here? (I see some commits that look suggestive) |
Yeah, sorry about the spam. There is a recent regression in clippy rust-lang/rust-clippy#3628 which has not been very easy to track down which prevents use from landing the fix. :/ |
Changes: ```` Revert "tests: used_underscore_binding_macro: disable random_state lint." Revert "Auto merge of rust-lang#3603 - xfix:random-state-lint, r=phansch" rustup rust-lang#56837 rustup (don't know the exact PR unfortunately) Add itertools to integration tests tests: used_underscore_binding_macro: disable random_state lint. Trigger `use_self` lint in local macros Add run-rustfix where it already passes rustup: rust-lang#55517 Make clippy work with parallel rustc Add ui/for_kv_map test for false positive in rust-lang#1279 Update to latest compiletest-rs release add testcase for rust-lang#3462 deps: bump rustc_tools_util version from 0.1.0 to 0.1.1 just in case... Use compiletest's aux-build header instead of include macro rustc_tool_utils: fix failure to create proper non-repo version string when used in crates on crates.io, bump version rustfmt UI test cleanup: Extract ifs_same_cond tests Extract IteratorFalsePositives into option_helpers.rs UI test cleanup: Extract for_kv_map lint tests UI test cleanup: Extract lint from methods.rs test Fix test for rust-lang#57250 Limit infinite_iter collect() check to known types Some improvements to util documentation Use hashset for name blacklist Reformat random_state tests Use node_id_to_type_opt instead of node_it_to_type in random_state Check pattern equality while checking declaration equality random_state lint Move constant write checks to temporary_assignment lint Use an FxHashSet for valid idents in documentation lint Fix suggestion for unnecessary_ref lint Update CONTRIBUTING.md for rustfix tests Update .fixed files via update-references.sh Run rustfix on first UI test Use WIP branch for compiletest_rs ````
Changes: ```` Revert "tests: used_underscore_binding_macro: disable random_state lint." Revert "Auto merge of rust-lang#3603 - xfix:random-state-lint, r=phansch" rustup rust-lang#56837 rustup (don't know the exact PR unfortunately) Add itertools to integration tests tests: used_underscore_binding_macro: disable random_state lint. Trigger `use_self` lint in local macros Add run-rustfix where it already passes rustup: rust-lang#55517 Make clippy work with parallel rustc Add ui/for_kv_map test for false positive in rust-lang#1279 Update to latest compiletest-rs release add testcase for rust-lang#3462 deps: bump rustc_tools_util version from 0.1.0 to 0.1.1 just in case... Use compiletest's aux-build header instead of include macro rustc_tool_utils: fix failure to create proper non-repo version string when used in crates on crates.io, bump version rustfmt UI test cleanup: Extract ifs_same_cond tests Extract IteratorFalsePositives into option_helpers.rs UI test cleanup: Extract for_kv_map lint tests UI test cleanup: Extract lint from methods.rs test Fix test for rust-lang#57250 Limit infinite_iter collect() check to known types Some improvements to util documentation Use hashset for name blacklist Reformat random_state tests Use node_id_to_type_opt instead of node_it_to_type in random_state Check pattern equality while checking declaration equality random_state lint Move constant write checks to temporary_assignment lint Use an FxHashSet for valid idents in documentation lint Fix suggestion for unnecessary_ref lint Update CONTRIBUTING.md for rustfix tests Update .fixed files via update-references.sh Run rustfix on first UI test Use WIP branch for compiletest_rs ````
Changes: ```` Revert "tests: used_underscore_binding_macro: disable random_state lint." Revert "Auto merge of rust-lang#3603 - xfix:random-state-lint, r=phansch" rustup rust-lang/rust#56837 rustup (don't know the exact PR unfortunately) Add itertools to integration tests tests: used_underscore_binding_macro: disable random_state lint. Trigger `use_self` lint in local macros Add run-rustfix where it already passes rustup: rust-lang/rust#55517 Make clippy work with parallel rustc Add ui/for_kv_map test for false positive in rust-lang#1279 Update to latest compiletest-rs release add testcase for rust-lang#3462 deps: bump rustc_tools_util version from 0.1.0 to 0.1.1 just in case... Use compiletest's aux-build header instead of include macro rustc_tool_utils: fix failure to create proper non-repo version string when used in crates on crates.io, bump version rustfmt UI test cleanup: Extract ifs_same_cond tests Extract IteratorFalsePositives into option_helpers.rs UI test cleanup: Extract for_kv_map lint tests UI test cleanup: Extract lint from methods.rs test Fix test for rust-lang/rust#57250 Limit infinite_iter collect() check to known types Some improvements to util documentation Use hashset for name blacklist Reformat random_state tests Use node_id_to_type_opt instead of node_it_to_type in random_state Check pattern equality while checking declaration equality random_state lint Move constant write checks to temporary_assignment lint Use an FxHashSet for valid idents in documentation lint Fix suggestion for unnecessary_ref lint Update CONTRIBUTING.md for rustfix tests Update .fixed files via update-references.sh Run rustfix on first UI test Use WIP branch for compiletest_rs ````
This PR transitions the compiler to use universes instead of the leak-check. It is marked as [WIP] for a few reasons:
The goals of this PR at present are:
The first few commits in the PR are changing how
evaluate
treats regions. We now track whether region comparisons occurred, reverting the "staticized" query approach that @arielb1 put in. The problem with "staticized" queries is that it relied on the leak-check to get higher-ranked things correct, and we are removing the leak-check in this PR series, so that caused problems.You can see at the end a collection of test updates. Mostly we behave the same but with atrocious diagnostics, but there are a number of cases where we used to error and now no longer do, as well as single case where we used to not error but we now do (the coherence-subtyping change).
(Note: it would be possible to do a version of leak-check that propagates universe information and recover the old behavior. I am reluctant to do so because I'd like to leave us room to get more precise -- e.g., I want to eventually handle things like
exists<'a> { for<'b> { if ('a: 'b) { 'a: 'b } } }
which presently the leak-check cannot cope with etc. Also because it seems more consistent to me: most folks I've talked to expect the new behavior and are surprised to learn that binding sites were so significant before when it comes to coherence. One question is, though, to what extent are people relying on this in the wild?)