Skip to content

Only load the feature list once in the entire resolver - #158263

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
oli-obk:feature-once
Jun 25, 2026
Merged

Only load the feature list once in the entire resolver#158263
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
oli-obk:feature-once

Conversation

@oli-obk

@oli-obkoli-obk commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.

@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 22, 2026
@oli-obk

Copy link
Copy Markdown
ContributorAuthor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 22, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Jun 22, 2026
Only load the feature list once in the entire resolver
@petrochenkovpetrochenkov self-assigned this Jun 22, 2026
@rust-bors

rust-borsBot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 4063797 (4063797428d2889154a1f321d903212b4a5c8b32)
Base parent: cddcbec (cddcbec198760511240bf0e728193bf4d700acb4)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (4063797): comparison URL.

Overall result: no relevant changes - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary -3.0%, secondary 0.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.1%, 2.9%]2
Improvements ✅
(primary)
-3.0%[-3.2%, -2.7%]2
Improvements ✅
(secondary)
-1.7%[-1.7%, -1.7%]2
All ❌✅ (primary)-3.0%[-3.2%, -2.7%]2

Cycles

Results (primary -1.6%, secondary -1.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.8%[2.8%, 2.8%]1
Improvements ✅
(primary)
-1.6%[-1.9%, -1.4%]2
Improvements ✅
(secondary)
-5.2%[-5.2%, -5.2%]1
All ❌✅ (primary)-1.6%[-1.9%, -1.4%]2

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 505.379s -> 504.697s (-0.13%)
Artifact size: 353.06 MiB -> 353.50 MiB (0.12%)

@rustbotrustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 22, 2026
@oli-obk
oli-obk marked this pull request as ready for review June 22, 2026 19:56
@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 22, 2026
Comment threadcompiler/rustc_resolve/src/lib.rs Outdated
/// Stores `#[diagnostic::on_unknown]` attributes placed on module declarations.
on_unknown_data: FxHashMap<LocalDefId, OnUnknownData>,
on_unknown_data: FxHashMap<LocalDefId, OnUnknownData> = default::fx_hash_map(),
pub features: &'tcx Features,

@petrochenkovpetrochenkovJun 23, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pubfeatures:&'tcx Features,
features:&'tcx Features,

Nothing else in Resolver is public, rustc_interface can probably survive calling tcx.features() one more time.

View changes since the review

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea 😅 that was a bit overkill

@petrochenkov

Copy link
Copy Markdown
Contributor

r=me with #158263 (comment) addressed.
@rustbot author

@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 23, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@rustbot

Copy link
Copy Markdown
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.

@rust-log-analyzer

This comment has been minimized.

@oli-obk

Copy link
Copy Markdown
ContributorAuthor

@bors r=petrochenkov rollup

@rust-bors

rust-borsBot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

📌 Commit bd73fb8 has been approved by petrochenkov

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 23, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jun 23, 2026
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jun 23, 2026
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
rust-borsBot pushed a commit that referenced this pull request Jun 23, 2026
…uwer
Rollup of 23 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #158020 (Update mingw-w64 C toolchain)
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158257 ( fix escaping placeholder check in next solver normalization folder)
- #158263 (Only load the feature list once in the entire resolver)
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
Failed merges:
- #158256 (Avoid parser panics bubbling out to proc macros)
jhpratt added a commit to jhpratt/rust that referenced this pull request Jun 24, 2026
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
@jhprattjhpratt mentioned this pull request Jun 24, 2026
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 27 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158257 ( fix escaping placeholder check in next solver normalization folder)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
Failed merges:
- #158256 (Avoid parser panics bubbling out to proc macros)
jhpratt added a commit to jhpratt/rust that referenced this pull request Jun 24, 2026
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
This was referenced Jun 24, 2026
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jun 24, 2026
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
rust-borsBot pushed a commit that referenced this pull request Jun 24, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
rust-borsBot pushed a commit that referenced this pull request Jun 25, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
rust-borsBot pushed a commit that referenced this pull request Jun 25, 2026
Rollup of 35 pull requests
Successful merges:
- #158315 (`rust-analyzer` subtree update)
- #158336 (Stop excluding `stdarch` test crates from `rust-src`)
- #155739 (Add temporary scope to assert_eq and assert_ne)
- #156885 (Fix misattributed type inference error span for index expressions)
- #157271 (simplify some `proc_macro` things)
- #157419 (move rustc_type_ir Term things to term_kind.rs)
- #157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- #157921 (trait solver: Resolve region vars in max universe)
- #157960 (delegation: add support for infers in generics)
- #157983 (Lift the same-signature restriction for `extern "tail"`)
- #158053 (Optimize network address parser)
- #158105 (Extract all instance shim variants into new `ShimKind` enum)
- #158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- #158279 (Follow goto and drop when linting unreachable code)
- #157527 (Move derive tests into their dedicated folder)
- #157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- #157939 (Reorganize `tests/ui/issues` [8/N])
- #157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- #158003 (Reorganize `tests/ui/issues` [9/N])
- #158020 (Update mingw-w64 C toolchain)
- #158039 (c-variadic: test that we use equality up to free lifetimes)
- #158060 (Reorganize `tests/ui/issues` [10/N])
- #158222 (format: ignore println newline in foreign format hints)
- #158223 (Move target checking for #[lang] to the attribute parser)
- #158252 (Use `cfg_select` in `std::os`)
- #158263 (Only load the feature list once in the entire resolver)
- #158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- #158272 (Reorganize `tests/ui/issues` [13/N])
- #158274 (triagebot: Stop pinging myself)
- #158282 (slice_split_once: bounds check optimization note)
- #158300 (Improve unknown crate_type diagnostic suggestions)
- #158304 (mailmap: update mu001999)
- #158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- #158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- #158326 (Add `io::ErrorKind::TooManyOpenFiles`)
@rust-bors
rust-borsBot merged commit 653c61a into rust-lang:mainJun 25, 2026
13 checks passed
@rustbotrustbot added this to the 1.98.0 milestone Jun 25, 2026
rust-timer added a commit that referenced this pull request Jun 25, 2026
Rollup merge of #158263 - oli-obk:feature-once, r=petrochenkov
Only load the feature list once in the entire resolver
I saw that a bunch of code in ast validation and other early logic just had the features query called once and stored the result. Let's see what the resolver does with that.
pullBot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Jun 26, 2026
Rollup of 35 pull requests
Successful merges:
- rust-lang/rust#158315 (`rust-analyzer` subtree update)
- rust-lang/rust#158336 (Stop excluding `stdarch` test crates from `rust-src`)
- rust-lang/rust#155739 (Add temporary scope to assert_eq and assert_ne)
- rust-lang/rust#156885 (Fix misattributed type inference error span for index expressions)
- rust-lang/rust#157271 (simplify some `proc_macro` things)
- rust-lang/rust#157419 (move rustc_type_ir Term things to term_kind.rs)
- rust-lang/rust#157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- rust-lang/rust#157921 (trait solver: Resolve region vars in max universe)
- rust-lang/rust#157960 (delegation: add support for infers in generics)
- rust-lang/rust#157983 (Lift the same-signature restriction for `extern "tail"`)
- rust-lang/rust#158053 (Optimize network address parser)
- rust-lang/rust#158105 (Extract all instance shim variants into new `ShimKind` enum)
- rust-lang/rust#158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- rust-lang/rust#158279 (Follow goto and drop when linting unreachable code)
- rust-lang/rust#157527 (Move derive tests into their dedicated folder)
- rust-lang/rust#157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- rust-lang/rust#157939 (Reorganize `tests/ui/issues` [8/N])
- rust-lang/rust#157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- rust-lang/rust#158003 (Reorganize `tests/ui/issues` [9/N])
- rust-lang/rust#158020 (Update mingw-w64 C toolchain)
- rust-lang/rust#158039 (c-variadic: test that we use equality up to free lifetimes)
- rust-lang/rust#158060 (Reorganize `tests/ui/issues` [10/N])
- rust-lang/rust#158222 (format: ignore println newline in foreign format hints)
- rust-lang/rust#158223 (Move target checking for #[lang] to the attribute parser)
- rust-lang/rust#158252 (Use `cfg_select` in `std::os`)
- rust-lang/rust#158263 (Only load the feature list once in the entire resolver)
- rust-lang/rust#158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- rust-lang/rust#158272 (Reorganize `tests/ui/issues` [13/N])
- rust-lang/rust#158274 (triagebot: Stop pinging myself)
- rust-lang/rust#158282 (slice_split_once: bounds check optimization note)
- rust-lang/rust#158300 (Improve unknown crate_type diagnostic suggestions)
- rust-lang/rust#158304 (mailmap: update mu001999)
- rust-lang/rust#158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- rust-lang/rust#158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- rust-lang/rust#158326 (Add `io::ErrorKind::TooManyOpenFiles`)
pullBot pushed a commit to Kokoro2336/rust-analyzer that referenced this pull request Jun 29, 2026
Rollup of 35 pull requests
Successful merges:
- rust-lang/rust#158315 (`rust-analyzer` subtree update)
- rust-lang/rust#158336 (Stop excluding `stdarch` test crates from `rust-src`)
- rust-lang/rust#155739 (Add temporary scope to assert_eq and assert_ne)
- rust-lang/rust#156885 (Fix misattributed type inference error span for index expressions)
- rust-lang/rust#157271 (simplify some `proc_macro` things)
- rust-lang/rust#157419 (move rustc_type_ir Term things to term_kind.rs)
- rust-lang/rust#157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- rust-lang/rust#157921 (trait solver: Resolve region vars in max universe)
- rust-lang/rust#157960 (delegation: add support for infers in generics)
- rust-lang/rust#157983 (Lift the same-signature restriction for `extern "tail"`)
- rust-lang/rust#158053 (Optimize network address parser)
- rust-lang/rust#158105 (Extract all instance shim variants into new `ShimKind` enum)
- rust-lang/rust#158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- rust-lang/rust#158279 (Follow goto and drop when linting unreachable code)
- rust-lang/rust#157527 (Move derive tests into their dedicated folder)
- rust-lang/rust#157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- rust-lang/rust#157939 (Reorganize `tests/ui/issues` [8/N])
- rust-lang/rust#157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- rust-lang/rust#158003 (Reorganize `tests/ui/issues` [9/N])
- rust-lang/rust#158020 (Update mingw-w64 C toolchain)
- rust-lang/rust#158039 (c-variadic: test that we use equality up to free lifetimes)
- rust-lang/rust#158060 (Reorganize `tests/ui/issues` [10/N])
- rust-lang/rust#158222 (format: ignore println newline in foreign format hints)
- rust-lang/rust#158223 (Move target checking for #[lang] to the attribute parser)
- rust-lang/rust#158252 (Use `cfg_select` in `std::os`)
- rust-lang/rust#158263 (Only load the feature list once in the entire resolver)
- rust-lang/rust#158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- rust-lang/rust#158272 (Reorganize `tests/ui/issues` [13/N])
- rust-lang/rust#158274 (triagebot: Stop pinging myself)
- rust-lang/rust#158282 (slice_split_once: bounds check optimization note)
- rust-lang/rust#158300 (Improve unknown crate_type diagnostic suggestions)
- rust-lang/rust#158304 (mailmap: update mu001999)
- rust-lang/rust#158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- rust-lang/rust#158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- rust-lang/rust#158326 (Add `io::ErrorKind::TooManyOpenFiles`)
ghaaj pushed a commit to ghaaj/polygrammar that referenced this pull request Aug 7, 2026
Rollup of 35 pull requests
Successful merges:
- rust-lang/rust#158315 (`rust-analyzer` subtree update)
- rust-lang/rust#158336 (Stop excluding `stdarch` test crates from `rust-src`)
- rust-lang/rust#155739 (Add temporary scope to assert_eq and assert_ne)
- rust-lang/rust#156885 (Fix misattributed type inference error span for index expressions)
- rust-lang/rust#157271 (simplify some `proc_macro` things)
- rust-lang/rust#157419 (move rustc_type_ir Term things to term_kind.rs)
- rust-lang/rust#157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- rust-lang/rust#157921 (trait solver: Resolve region vars in max universe)
- rust-lang/rust#157960 (delegation: add support for infers in generics)
- rust-lang/rust#157983 (Lift the same-signature restriction for `extern "tail"`)
- rust-lang/rust#158053 (Optimize network address parser)
- rust-lang/rust#158105 (Extract all instance shim variants into new `ShimKind` enum)
- rust-lang/rust#158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- rust-lang/rust#158279 (Follow goto and drop when linting unreachable code)
- rust-lang/rust#157527 (Move derive tests into their dedicated folder)
- rust-lang/rust#157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- rust-lang/rust#157939 (Reorganize `tests/ui/issues` [8/N])
- rust-lang/rust#157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- rust-lang/rust#158003 (Reorganize `tests/ui/issues` [9/N])
- rust-lang/rust#158020 (Update mingw-w64 C toolchain)
- rust-lang/rust#158039 (c-variadic: test that we use equality up to free lifetimes)
- rust-lang/rust#158060 (Reorganize `tests/ui/issues` [10/N])
- rust-lang/rust#158222 (format: ignore println newline in foreign format hints)
- rust-lang/rust#158223 (Move target checking for #[lang] to the attribute parser)
- rust-lang/rust#158252 (Use `cfg_select` in `std::os`)
- rust-lang/rust#158263 (Only load the feature list once in the entire resolver)
- rust-lang/rust#158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- rust-lang/rust#158272 (Reorganize `tests/ui/issues` [13/N])
- rust-lang/rust#158274 (triagebot: Stop pinging myself)
- rust-lang/rust#158282 (slice_split_once: bounds check optimization note)
- rust-lang/rust#158300 (Improve unknown crate_type diagnostic suggestions)
- rust-lang/rust#158304 (mailmap: update mu001999)
- rust-lang/rust#158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- rust-lang/rust#158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- rust-lang/rust#158326 (Add `io::ErrorKind::TooManyOpenFiles`)
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
Rollup of 35 pull requests
Successful merges:
- rust-lang/rust#158315 (`rust-analyzer` subtree update)
- rust-lang/rust#158336 (Stop excluding `stdarch` test crates from `rust-src`)
- rust-lang/rust#155739 (Add temporary scope to assert_eq and assert_ne)
- rust-lang/rust#156885 (Fix misattributed type inference error span for index expressions)
- rust-lang/rust#157271 (simplify some `proc_macro` things)
- rust-lang/rust#157419 (move rustc_type_ir Term things to term_kind.rs)
- rust-lang/rust#157883 (Remove strict invariant node_type on hir_type during ty privacy visit)
- rust-lang/rust#157921 (trait solver: Resolve region vars in max universe)
- rust-lang/rust#157960 (delegation: add support for infers in generics)
- rust-lang/rust#157983 (Lift the same-signature restriction for `extern "tail"`)
- rust-lang/rust#158053 (Optimize network address parser)
- rust-lang/rust#158105 (Extract all instance shim variants into new `ShimKind` enum)
- rust-lang/rust#158207 (Resolver: local/external split of `resolve_ident_in_module_non_globs_unadjusted` )
- rust-lang/rust#158279 (Follow goto and drop when linting unreachable code)
- rust-lang/rust#157527 (Move derive tests into their dedicated folder)
- rust-lang/rust#157807 (don't ice on non-lifetime binders under `-Zassumptions-on-binders`)
- rust-lang/rust#157939 (Reorganize `tests/ui/issues` [8/N])
- rust-lang/rust#157946 (Make `char::is_private_use` and `char::is_assigned` unstably public)
- rust-lang/rust#158003 (Reorganize `tests/ui/issues` [9/N])
- rust-lang/rust#158020 (Update mingw-w64 C toolchain)
- rust-lang/rust#158039 (c-variadic: test that we use equality up to free lifetimes)
- rust-lang/rust#158060 (Reorganize `tests/ui/issues` [10/N])
- rust-lang/rust#158222 (format: ignore println newline in foreign format hints)
- rust-lang/rust#158223 (Move target checking for #[lang] to the attribute parser)
- rust-lang/rust#158252 (Use `cfg_select` in `std::os`)
- rust-lang/rust#158263 (Only load the feature list once in the entire resolver)
- rust-lang/rust#158267 (FromUtf8Error::into_utf8_lossy better example and suggest use)
- rust-lang/rust#158272 (Reorganize `tests/ui/issues` [13/N])
- rust-lang/rust#158274 (triagebot: Stop pinging myself)
- rust-lang/rust#158282 (slice_split_once: bounds check optimization note)
- rust-lang/rust#158300 (Improve unknown crate_type diagnostic suggestions)
- rust-lang/rust#158304 (mailmap: update mu001999)
- rust-lang/rust#158309 (Update `rustc-literal-escaper` version to `0.0.8`)
- rust-lang/rust#158314 (Fix incorrect unsafe debug assertion in unchecked_div_exact)
- rust-lang/rust#158326 (Add `io::ErrorKind::TooManyOpenFiles`)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@oli-obk@rust-timer@petrochenkov@rustbot@rust-log-analyzer