-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Convert the rest of the visitors to use VisitorResult
#121576
Conversation
r? @wesleywiser rustbot has assigned @wesleywiser. Use r? to explicitly pick a reviewer |
Some changes occurred to the core trait solver cc @rust-lang/initiative-trait-system-refactor Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri Some changes occurred in src/tools/clippy cc @rust-lang/clippy These commits modify the If this was unintentional then you should revert the changes before this PR is merged. Some changes occurred in cc @BoxyUwU |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
compiler/rustc_type_ir/src/visit.rs
Outdated
@@ -47,6 +47,83 @@ use std::ops::ControlFlow; | |||
|
|||
use crate::{self as ty, BoundVars, Interner, IntoKind, Lrc, TypeFlags}; | |||
|
|||
/// Similar to the `Try` trait, but also implemented for `()`. |
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.
Move this to rustc_data_structures, so you can avoid all the new crate dependencies (even if you have to add some, they'll already be there transitively)
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.
rustc_type_ir
is already a transitive dependency for all of them via rustc_ast
(or rustc_hir
, which depends on rustc_ast
).
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.
huh. Why does ast depend on type_ir
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.
Ah
rust/compiler/rustc_ast/Cargo.toml
Line 17 in e9f9594
# For Mutability and Movability, which could be uplifted into a common crate. |
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.
Let's avoid adding more direct deps and instead move this new trait and macros to data structures. It's not type system specific after all
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.
What's with the nightly
feature on rustc_type_ir
and all the optional dependencies? Should I just ignore those or make the whole visit module depend on a feature?
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.
Hmm I see your point. That's annoying. I guess it's the same with the movability and the mutability enums. If you feel really motivated rn, you could split those out into a new crate and get rid of the ast->type_ir dep
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.
Just pulling them into their own crate is easy. Doing it in a way that's actually nice is probably going to be a fair bit of work.
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.
The split is done. Please move it to rustc_ast_ir and adjust the dependencies. Where useful, reexports could help reduce the amount of direct dependencies on rustc_ast_ir
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.
All the impls lgtm
☔ The latest upstream changes (presumably #119106) made this pull request unmergeable. Please resolve the merge conflicts. |
…-errors Split rustc_type_ir to avoid rustc_ast from depending on it unblocks rust-lang#121576 and resolves a FIXME in `rustc_ast`'s `Cargo.toml` The new crate is tiny, but it will get bigger in rust-lang#121576
…-errors Split rustc_type_ir to avoid rustc_ast from depending on it unblocks rust-lang#121576 and resolves a FIXME in `rustc_ast`'s `Cargo.toml` The new crate is tiny, but it will get bigger in rust-lang#121576
…-errors Split rustc_type_ir to avoid rustc_ast from depending on it unblocks rust-lang#121576 and resolves a FIXME in `rustc_ast`'s `Cargo.toml` The new crate is tiny, but it will get bigger in rust-lang#121576
…-errors Split rustc_type_ir to avoid rustc_ast from depending on it unblocks rust-lang#121576 and resolves a FIXME in `rustc_ast`'s `Cargo.toml` The new crate is tiny, but it will get bigger in rust-lang#121576
Rollup merge of rust-lang#121695 - oli-obk:split_ty_utils, r=compiler-errors Split rustc_type_ir to avoid rustc_ast from depending on it unblocks rust-lang#121576 and resolves a FIXME in `rustc_ast`'s `Cargo.toml` The new crate is tiny, but it will get bigger in rust-lang#121576
This comment has been minimized.
This comment has been minimized.
@rustbot ready |
compiler/rustc_ast/src/visit.rs
Outdated
@@ -15,8 +15,8 @@ | |||
|
|||
use crate::ast::*; | |||
|
|||
use core::ops::ControlFlow; | |||
|
|||
use rustc_ast_ir::visit::VisitorResult; |
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.
use rustc_ast_ir::visit::VisitorResult; | |
pub use rustc_ast_ir::visit::VisitorResult; |
And then get rid of all the direct dependencies on rustc_ast_ir
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.
Done.
@bors r+ |
Convert the rest of the visitors to use `VisitorResult` Continuing from rust-lang#121256.
…llaumeGomez Rollup of 9 pull requests Successful merges: - rust-lang#120976 (constify a couple thread_local statics) - rust-lang#121576 (Convert the rest of the visitors to use `VisitorResult`) - rust-lang#121826 (Use root obligation on E0277 for some cases) - rust-lang#121928 (Extract an arguments struct for `Builder::then_else_break`) - rust-lang#121958 (Fix redundant import errors for preload extern crate) - rust-lang#121959 (Removing absolute path in proc-macro) - rust-lang#121968 (Don't run test_get_os_named_thread on win7) - rust-lang#121977 (Doc: Fix incorrect reference to integer in Atomic{Ptr,Bool}::as_ptr.) - rust-lang#121978 (Fix duplicated path in the "not found dylib" error) r? `@ghost` `@rustbot` modify labels: rollup
☔ The latest upstream changes (presumably #122012) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors p=1 bitrotty please rebase, we'll land with priority next time |
@bors r+ |
☀️ Test successful - checks-actions |
Finished benchmarking commit (b6d2d84): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis 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.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 644.259s -> 646.18s (0.30%) |
Continuing from #121256.