Skip to content

Use as_lang_item instead of repeatedly matching - #159005

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
oli-obk:push-qsowtzonuyoz
Jul 11, 2026
Merged

Use as_lang_item instead of repeatedly matching#159005
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
oli-obk:push-qsowtzonuyoz

Conversation

@oli-obk

@oli-obk oli-obk commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 9, 2026
@rustbot

rustbot commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

r? @khyperia

rustbot has assigned @khyperia.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler, types
  • compiler, types expanded to 75 candidates
  • Random selection from 17 candidates

@lqd

lqd commented Jul 9, 2026

Copy link
Copy Markdown
Member

r? me

Looks good and simple, r=me when green

@rustbot rustbot assigned lqd and unassigned khyperia Jul 9, 2026
@oli-obk

oli-obk commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

@bors r=lqd rollup

@rust-bors

rust-bors Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 79b7231 has been approved by lqd

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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-review Status: Awaiting review from the assignee but also interested parties. labels Jul 9, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 9, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 9, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 9, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
@Kobzol

Kobzol commented Jul 9, 2026

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

Racing the queue, just to check if it had any potential perf. effect.

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 9, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 9, 2026
Use `as_lang_item` instead of repeatedly matching
rust-bors Bot pushed a commit that referenced this pull request Jul 9, 2026
…uwer

Rollup of 21 pull requests

Successful merges:

 - #150946 (intrinsics: Add a fallback for non-const libm float functions)
 - #158510 (Enable `static_position_independent_executables` on all gnu and musl targets)
 - #158541 (Move `std::io::Write` to `core::io`)
 - #158899 (Fix `unaligned_volatile_store` by removing `MemFlags::UNALIGNED`)
 - #155429 (Support `u128`/`i128` c-variadic arguments)
 - #156370 (Reject linked dylib EII default overrides)
 - #156508 (Infer all anonymous lifetimes in assoc consts as `'static`)
 - #158617 (allow mGCA const arguments to fall back to anon consts)
 - #158645 (Fix splat ICEs and ban it in closures)
 - #158859 (Improve `-Zls` diagnostic message on `.rs` files)
 - #158988 (Redo `TokenStreamIter`)
 - #158347 (Improve generic parameters handling for #[diagnostic::on_const])
 - #158722 (delegation: do not always inherit `ConstArgHasType` predicates)
 - #158739 (view-types: HIR lowering)
 - #158883 (tests: fix enum-match.rs to handle LLVM 23)
 - #158886 (Add documentation for the `no_std` attribute)
 - #158940 (Implement feature `char_to_u32`)
 - #158951 (Merge three `MaxUniverse`s into one)
 - #158961 (Reapply "LLVM 23: Run AssignGUIDPass in some places")
 - #158996 ([compiler] Implement `PartialOrd` via `Ord` for `Span` and newtype_indexes)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
@rust-bors

rust-bors Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 5eef5c6 (5eef5c65e9a624f737a13c8fc22ca68d359f4656)
Base parent: 561ea2b (561ea2bfa3022226082e2db39d6ccb241e9e34bc)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (5eef5c6): comparison URL.

Overall result: ❌ regressions - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.2% [0.2%, 0.3%] 2
Regressions ❌
(secondary)
0.3% [0.2%, 0.3%] 9
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [0.2%, 0.3%] 2

Max RSS (memory usage)

Results (secondary 4.7%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.7% [3.2%, 6.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (primary -3.1%, secondary -2.5%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.1% [-3.1%, -3.1%] 1
Improvements ✅
(secondary)
-2.5% [-2.6%, -2.3%] 2
All ❌✅ (primary) -3.1% [-3.1%, -3.1%] 1

Binary size

Results (primary -0.1%, secondary -0.1%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.1%, -0.0%] 56
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.0%] 22
All ❌✅ (primary) -0.1% [-0.1%, -0.0%] 56

Bootstrap: 489.147s -> 489.653s (0.10%)
Artifact size: 388.47 MiB -> 388.36 MiB (-0.03%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jul 9, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

Perf is quite negative but I'm convinced this is all noise
@bors rollup=iffy

JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
rust-bors Bot pushed a commit that referenced this pull request Jul 10, 2026
…uwer

Rollup of 7 pull requests

Successful merges:

 - #157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
 - #156735 (Move NativeLib::filename to the rmeta-link archive member)
 - #158732 (Apply MCP 1003 and move diagnostics.rs into its own module)
 - #158854 (Add `#[rustc_test_entrypoint_marker]`)
 - #158965 (Add codegen test for Result is_ok unwrap)
 - #159050 (assert only opaques with sub unified hidden infer are non-rigid)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
rust-bors Bot pushed a commit that referenced this pull request Jul 10, 2026
…uwer

Rollup of 10 pull requests

Successful merges:

 - #157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - #157706 (Deny `todo!()` in tidy)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
 - #156735 (Move NativeLib::filename to the rmeta-link archive member)
 - #159039 (resolve: fix effective visibilities for items in ambiguous glob sets)
 - #158930 (Reorganize `tests/ui/issues` [20/N])
 - #158965 (Add codegen test for Result is_ok unwrap)
 - #158979 (Reorganize `tests/ui/issues` [21/N])
 - #159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - #159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)

Failed merges:

 - #158732 (Apply MCP 1003 and move diagnostics.rs into its own module)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
rust-bors Bot pushed a commit that referenced this pull request Jul 10, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - #157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
 - #156735 (Move NativeLib::filename to the rmeta-link archive member)
 - #157153 (allow `Allocator`s to be used as `#[global_allocator]`s)
 - #158767 (merge DefKind::InlineConst into AnonConst)
 - #159039 (resolve: fix effective visibilities for items in ambiguous glob sets)
 - #158732 (Apply MCP 1003 and move diagnostics.rs into its own module)
 - #158930 (Reorganize `tests/ui/issues` [20/N])
 - #158965 (Add codegen test for Result is_ok unwrap)
 - #158979 (Reorganize `tests/ui/issues` [21/N])
 - #159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - #159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 10, 2026
Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
rust-bors Bot pushed a commit that referenced this pull request Jul 11, 2026
Rollup of 15 pull requests

Successful merges:

 - #159106 (Update LLVM)
 - #157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
 - #156735 (Move NativeLib::filename to the rmeta-link archive member)
 - #157153 (allow `Allocator`s to be used as `#[global_allocator]`s)
 - #158269 (jq directives for jsondocck)
 - #158767 (merge DefKind::InlineConst into AnonConst)
 - #159099 (Stabilize String::from_utf8_lossy_owned)
 - #158930 (Reorganize `tests/ui/issues` [20/N])
 - #158965 (Add codegen test for Result is_ok unwrap)
 - #158979 (Reorganize `tests/ui/issues` [21/N])
 - #159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - #159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)
 - #159070 (Add `io::ErrorKind::InputOutputError`)
 - #159092 (make volatile operations const)
rust-bors Bot pushed a commit that referenced this pull request Jul 11, 2026
Rollup of 15 pull requests

Successful merges:

 - #159106 (Update LLVM)
 - #157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - #159005 (Use `as_lang_item` instead of repeatedly matching)
 - #156735 (Move NativeLib::filename to the rmeta-link archive member)
 - #157153 (allow `Allocator`s to be used as `#[global_allocator]`s)
 - #158269 (jq directives for jsondocck)
 - #158767 (merge DefKind::InlineConst into AnonConst)
 - #159099 (Stabilize String::from_utf8_lossy_owned)
 - #158930 (Reorganize `tests/ui/issues` [20/N])
 - #158965 (Add codegen test for Result is_ok unwrap)
 - #158979 (Reorganize `tests/ui/issues` [21/N])
 - #159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - #159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)
 - #159070 (Add `io::ErrorKind::InputOutputError`)
 - #159092 (make volatile operations const)
@rust-bors
rust-bors Bot merged commit 985a610 into rust-lang:main Jul 11, 2026
14 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Jul 11, 2026
rust-timer added a commit that referenced this pull request Jul 11, 2026
Rollup merge of #159005 - oli-obk:push-qsowtzonuyoz, r=lqd

Use `as_lang_item` instead of repeatedly matching

drive-by fix I noticed while reviewing https://github.com/rust-lang/rust/pull/157489/changes#r3550851573
@JonathanBrouwer

Copy link
Copy Markdown
Member

@rust-timer build 0fde074

@rust-timer

This comment has been minimized.

pull Bot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Jul 12, 2026
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#159106 (Update LLVM)
 - rust-lang/rust#157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - rust-lang/rust#159005 (Use `as_lang_item` instead of repeatedly matching)
 - rust-lang/rust#156735 (Move NativeLib::filename to the rmeta-link archive member)
 - rust-lang/rust#157153 (allow `Allocator`s to be used as `#[global_allocator]`s)
 - rust-lang/rust#158269 (jq directives for jsondocck)
 - rust-lang/rust#158767 (merge DefKind::InlineConst into AnonConst)
 - rust-lang/rust#159099 (Stabilize String::from_utf8_lossy_owned)
 - rust-lang/rust#158930 (Reorganize `tests/ui/issues` [20/N])
 - rust-lang/rust#158965 (Add codegen test for Result is_ok unwrap)
 - rust-lang/rust#158979 (Reorganize `tests/ui/issues` [21/N])
 - rust-lang/rust#159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - rust-lang/rust#159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)
 - rust-lang/rust#159070 (Add `io::ErrorKind::InputOutputError`)
 - rust-lang/rust#159092 (make volatile operations const)
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0fde074): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.0%] 7
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 3.2%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.2% [3.2%, 3.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.1%, secondary 5.4%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
8.2% [1.8%, 23.5%] 9
Improvements ✅
(primary)
-2.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
-3.2% [-4.2%, -2.6%] 3
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Binary size

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

Bootstrap: 490.729s -> 488.618s (-0.43%)
Artifact size: 389.29 MiB -> 389.89 MiB (0.15%)

@JonathanBrouwer

Copy link
Copy Markdown
Member

@rustbot label: +perf-regression-triaged
Noise

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Jul 12, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
Rollup of 15 pull requests

Successful merges:

 - rust-lang/rust#159106 (Update LLVM)
 - rust-lang/rust#157690 (codegen_ssa: pack small const aggregates into immediate stores)
 - rust-lang/rust#159005 (Use `as_lang_item` instead of repeatedly matching)
 - rust-lang/rust#156735 (Move NativeLib::filename to the rmeta-link archive member)
 - rust-lang/rust#157153 (allow `Allocator`s to be used as `#[global_allocator]`s)
 - rust-lang/rust#158269 (jq directives for jsondocck)
 - rust-lang/rust#158767 (merge DefKind::InlineConst into AnonConst)
 - rust-lang/rust#159099 (Stabilize String::from_utf8_lossy_owned)
 - rust-lang/rust#158930 (Reorganize `tests/ui/issues` [20/N])
 - rust-lang/rust#158965 (Add codegen test for Result is_ok unwrap)
 - rust-lang/rust#158979 (Reorganize `tests/ui/issues` [21/N])
 - rust-lang/rust#159050 (assert only opaques with sub unified hidden infer are non-rigid)
 - rust-lang/rust#159062 (Remove unused WEAK_ONLY_LANG_ITEMS static)
 - rust-lang/rust#159070 (Add `io::ErrorKind::InputOutputError`)
 - rust-lang/rust#159092 (make volatile operations const)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant 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.

7 participants