Skip to content

GenericArgs::types triage + possible fixes - #159899

Open
LorrensP-2158466 wants to merge 3 commits into
rust-lang:mainfrom
LorrensP-2158466:generic_args_terms
Open

GenericArgs::types triage + possible fixes#159899
LorrensP-2158466 wants to merge 3 commits into
rust-lang:mainfrom
LorrensP-2158466:generic_args_terms

Conversation

@LorrensP-2158466

@LorrensP-2158466 LorrensP-2158466 commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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 Jul 25, 2026
@LorrensP-2158466

Copy link
Copy Markdown
Contributor Author

Don't know what tests can/will fail, so i'll see what a CI run says and go from there.

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jul 25, 2026
@LorrensP-2158466
LorrensP-2158466 force-pushed the generic_args_terms branch 2 times, most recently from a16db39 to ea9f31c Compare July 25, 2026 16:36
@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Jul 25, 2026
@LorrensP-2158466

LorrensP-2158466 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

This is all of the list posted in #t-types/call-for-participation > `args.types()` triage and fixes expect 2, both seem to be a bit harder to fix (to me at least:).

Currently separate commits because wanted to check CI after each "major enough" change

ping @lcnr

@LorrensP-2158466
LorrensP-2158466 marked this pull request as ready for review July 27, 2026 10:42
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 27, 2026
@rustbot

rustbot commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

clippy is developed in its own repository. If possible, consider making this change to rust-lang/rust-clippy instead.

cc @rust-lang/clippy

Some changes occurred in need_type_info.rs

cc @lcnr

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 27, 2026
@rustbot

rustbot commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

r? @chenyukang

rustbot has assigned @chenyukang.
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 74 candidates
  • Random selection from 18 candidates

@rust-log-analyzer

This comment has been minimized.

- be explicit when only needing types of `GenericArgs`
&& matches!(cx.tcx.get_diagnostic_name(adt_def.did()), Some(sym::Rc | sym::Arc))
{
args.types().next() == Some(parent_ty)
args.iter().filter_map(ty::GenericArg::as_type).nth(0) == Some(parent_ty)

@LorrensP-2158466 LorrensP-2158466 Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

From @lcnr in the zulip discussion:

yeah, the fact that accessing just types is often vaguely wrong and doesn't allow for random access, so doing iter().filter_map(GenericArg::as_type).nth(1) is beter for that

View changes since the review

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.

that can just be next().as_type() 🤔

@chenyukang

Copy link
Copy Markdown
Member

is it this PR still in WIP?
r? @lcnr

@rustbot rustbot assigned lcnr and unassigned chenyukang Jul 30, 2026
@LorrensP-2158466 LorrensP-2158466 changed the title [WIP]: GenericArgs::types triage + possible fixes GenericArgs::types triage + possible fixes Jul 31, 2026
fn get_ty_param(ty: Ty<'_>) -> Option<Ty<'_>> {
if let ty::Adt(_, subs) = ty.kind() {
subs.types().next()
subs.iter().filter_map(ty::GenericArg::as_type).nth(0)

@lcnr lcnr Aug 6, 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.

subs.iter().filter_map(ty::GenericArg::as_type).next() .nth(0) is always worse than next 🤔

View changes since the review

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

so iter().next().as_type(), gotcha.

@khyperia khyperia left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nice, thanks! lcnr asked me to take a peek.

I have a vague preference for .iter().nth(N).and_then(ty::GenericArg::as_type) over .iter().filter_map(ty::GenericArg::as_type).nth(N) when fetching the Nth type arg of a known type (the latter gives me spidey sense tingles around weird indexing, even though they're both equivalent since there's only type args for these known types), but that's an opinion that you're free to disregard~

View changes since this review

},
// FIXME: check const parameters better as well. Currently this will consider `Array<5>` the same as
// `Array<6>`
(ty::TermKind::Const(c1), ty::TermKind::Const(c2)) if c1 == c2 => todo!(),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

there's a todo!() here - probably should either keep the old behavior of considering all consts to be equal, or properly implement this, instead of panicing~

(today I learned that tidy doesn't run on src/tools/clippy, todo!() is banned by tidy)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I meant to ask a follow up question on this.

Consts are interned as well, right? But are there cases where they are not the same "const" but are still the same? Otherwise this can just return true indeed.

(today I learned that tidy doesn't run on src/tools/clippy, todo!() is banned by tidy)

Yeah me to :D.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I changed it to => true for now.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

For purposes of this real wonky function, yeah, consts can contain params. IMO, drop the guard, just have (ty::TermKind::Const(c1), ty::TermKind::Const(c2)) => (), to retain the old behavior, with the old comment. This function is only called in clippy::transmute_undefined_repr, which "has had multiple problems in the past and was moved to nursery" rust-lang/rust-clippy#8496 so preserving whatever wonky behavior it has for now seems best. (Hypothesizing a future fix, this should probably be a type relation or somesuch rather than doing a wonky custom relation on just ADTs? I mean, properly, I think maybe it should be doing a trait solver .eq() and checking if there's a solution. Idk.)

(Also, shouldn't return true but rather continue to the next term)

Comment thread tests/ui/lint/function-item-references.rs
@LorrensP-2158466

Copy link
Copy Markdown
Contributor Author

I have a vague preference for .iter().nth(N).and_then(ty::GenericArg::as_type) over .iter().filter_map(ty::GenericArg::as_type).nth(N) when fetching the Nth type arg of a known type

I can get behind why this is better in the case of a known type. I'll change them.

@LorrensP-2158466

Copy link
Copy Markdown
Contributor Author

So i went with the recommendation of lcnr, doing next().and_then(as_type) instead of nth(0).and_then(as_type).

@rustbot ready.

@rust-log-analyzer

This comment has been minimized.

@LorrensP-2158466

Copy link
Copy Markdown
Contributor Author

@rustbot author

@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 8, 2026
@rustbot

rustbot commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

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

@rustbot rustbot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 8, 2026
fn get_ty_param(ty: Ty<'_>) -> Option<Ty<'_>> {
if let ty::Adt(_, subs) = ty.kind() {
subs.types().next()
subs.iter().next().and_then(ty::GenericArg::as_type)

@khyperia khyperia Aug 10, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

could do subs.iter().next()?.as_type() in a few of these places, but whatever, that's a style choice, I don't care :P

View changes since the review

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I mean, why not :D? It does look cleaner.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Oh, I just now noticed that using types() is actually correct here.

it is also used on the Cow<'a, T> type, and the first parameter is the lifetime. That's why the filter_map is correct here and that this new change cause a ci job to fail.

@LorrensP-2158466

Copy link
Copy Markdown
Contributor Author

@rustbot ready

@rustbot rustbot 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 Aug 10, 2026
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-gcc failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
tests/ui/should_impl_trait/method_list_2.rs (revision `edition2015`) ... ok
tests/ui/should_impl_trait/method_list_2.rs (revision `edition2021`) ... ok

FAILED TEST: tests/ui/size_of_in_element_count/functions.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/heck/40d8a36a598704d4/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/rustc-hash/2fdeb0b079cadcca/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/clippy/1503a9667ec73e34/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/pulldown-cmark/d6361c0e0a33e8ad/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/icu_normalizer_data/93369b336785e819/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/zerovec-derive/7f0a152b1d06cfa8/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/askama_macros/edfb91204d133202/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/anyhow/b8794c500e0889ad/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/anyhow/52662a30d82704f1/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_json/675ca8a8bd542fe4/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_json/14ae69c017b38708/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/displaydoc/88b33a056d0fc5c2/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/eyre/d17ee644e28b5600/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/color-spantrace/6c4fc98dcc52de85/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/object/3a6ad7f28ae72ca9/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/unicode-ident/7700f7220a3db119/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/unicode-ident/68c8111d09114c25/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/camino/2d1e29686f9188f5/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/rustix/3ee9718b95415d9e/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/synstructure/fc6999b34215daed/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/rustc_apfloat/a4092f903c434296/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/icu_properties_data/df0b01bdbfbdea2a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/color-print-proc-macro/bb0891912b7dcefe/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror-impl/ea10f87c774be6bd/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror-impl/1f9ace4372f90b59/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror-impl/15b00c94ec005437/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_derive/6b0c8916b01b83a3/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_derive/db88c7eda6c1e4bf/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/tracing-attributes/974c0a96b6eb0e01/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/askama_derive/e6b24b9ec10fd26b/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/764a90293625b0a5/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/86a79ed7c67a0d76/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/d66e8225807cbebd/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/1863126c43b98132/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/57c2f6d6f6b8ac2b/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/proc-macro2/84cf5ac9ead002bf/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/libc/2eccd43d8b64f8a0/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/libc/5e85919d0ce45b79/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_core/37d4f1a9a67b234a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_core/27d152e6ce89646a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_core/ba1b04351ab12b2b/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_core/4c654bc470dbcf57/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde_core/00a34719f2ac3ff5/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/memchr/6babc0621d89e15e/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/portable-atomic/35d09903e352dbb4/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/63b06ee89b87c2c1/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/8046ec1c805922d9/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/10467d40ad3efb87/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/c8dc0de6528d3728/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/104e0f83b01b11b8/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/quote/7a5af9407a73a587/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/nom/f16dbf80f11aa603/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/syn/1a37cfb4947f4cc4/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/syn/0f3d4ca2c5cb9c6a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/syn/b77a520733875138/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror/8a1e26acd81b3cdd/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror/0fed43446a833d7a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/thiserror/1803cf74b13cf930/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/minimal-lexical/b91f64a04165898d/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/winnow/6ab1fd494f55d32e/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/rustc_tools_util/33eb222f58b9cfb0/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde/fc57c2797ce201a1/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde/7d0ec594c9def2a4/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde/00189e9cdc1905fb/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde/e6663c526386d3aa/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/serde/7a9e603b3f243995/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/owo-colors/bd9bd0311fba1783/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/crossbeam-utils/edeb1422d3222463/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/zerofrom-derive/8ff2858a171f6b9a/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/yoke-derive/ddce24ef44ddf0a0/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/askama_parser/3489a890ce5f7459/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/getrandom/2a9264abb8c896b7/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/glob/107afda21a03c281/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/clap_derive/f75d90d0a6a13b02/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/clap_derive/21eec10b8d29a1b8/out" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/basic-toml/8957cade6005f729/out" "--sysroot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/size_of_in_element_count" "tests/ui/size_of_in_element_count/functions.rs" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures/06dd83dba027ff0b/out/libfutures-06dd83dba027ff0b.rlib" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures/06dd83dba027ff0b/out/libfutures-06dd83dba027ff0b.rmeta" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/itertools/cbee7d8f3532191b/out/libitertools-cbee7d8f3532191b.rlib" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/itertools/cbee7d8f3532191b/out/libitertools-cbee7d8f3532191b.rmeta" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/libc/bd67e20315f8812a/out/liblibc-bd67e20315f8812a.rlib" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/libc/bd67e20315f8812a/out/liblibc-bd67e20315f8812a.rmeta" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/parking_lot/0a0707a280b181bb/out/libparking_lot-0a0707a280b181bb.rlib" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/parking_lot/0a0707a280b181bb/out/libparking_lot-0a0707a280b181bb.rmeta" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/quote/175bb304834e5300/out/libquote-175bb304834e5300.rlib" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/quote/175bb304834e5300/out/libquote-175bb304834e5300.rmeta" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/regex/18d2f0612fe3007e/out/libregex-18d2f0612fe3007e.rlib" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/regex/18d2f0612fe3007e/out/libregex-18d2f0612fe3007e.rmeta" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/serde/21a4145c8ac6dfcf/out/libserde-21a4145c8ac6dfcf.rlib" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/serde/21a4145c8ac6dfcf/out/libserde-21a4145c8ac6dfcf.rmeta" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/syn/ee9e8ce46b57ac85/out/libsyn-ee9e8ce46b57ac85.rlib" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/syn/ee9e8ce46b57ac85/out/libsyn-ee9e8ce46b57ac85.rmeta" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/tokio/7cd2aa0ce8efec5d/out/libtokio-7cd2aa0ce8efec5d.rlib" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/tokio/7cd2aa0ce8efec5d/out/libtokio-7cd2aa0ce8efec5d.rmeta" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/debug/build/serde_derive/c90f8db696b7f1a5/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/unicode-ident/de32c72272ba144c/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-sink/10047491f98af273/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/slab/78bf411452580b5e/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-channel/48da0835e52fffe0/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/quote/175bb304834e5300/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-io/06b0f8b5fc18428b/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/pin-utils/b43cfa9c35437250/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/proc-macro2/c7b81cf506362fd2/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-util/2c39c862ee6dd475/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures/06dd83dba027ff0b/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/libc/bd67e20315f8812a/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/pin-project-lite/3b80a63774edd2bf/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/debug/build/futures-macro/b5a0ce64c87ec796/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/lock_api/446f31d66e96d630/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-task/4f226b94c5a2bf7d/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/smallvec/227f7c246a30d59b/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-core/88484caeb5fc52ea/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/bytes/f04f8338c8fabf87/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/tokio/7cd2aa0ce8efec5d/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/regex/18d2f0612fe3007e/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/parking_lot/0a0707a280b181bb/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/itertools/cbee7d8f3532191b/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/parking_lot_core/bf81b160d8c8c353/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/serde/21a4145c8ac6dfcf/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/scopeguard/048d75133498eec6/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/syn/ee9e8ce46b57ac85/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/aho-corasick/5cf299aa6d27b60d/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/regex-automata/cc792516986245f5/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/memchr/97e218aee4b12da5/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/regex-syntax/1f8007df45bbe2b9/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/either/76aa79684b862000/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/cfg-if/df6fab233ff92f80/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/build/futures-executor/3e006f2c217f6300/out" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/size_of_in_element_count/functions.stderr` to the actual output
--- tests/ui/size_of_in_element_count/functions.stderr
+++ <stderr output>
 error: found a count of bytes instead of a count of elements of `T`
   --> tests/ui/size_of_in_element_count/functions.rs:18:69
... 87 lines skipped ...
 
 error: found a count of bytes instead of a count of elements of `T`
-  --> tests/ui/size_of_in_element_count/functions.rs:51:49
-   |
-LL |     unsafe { from_raw_parts_mut(y.as_mut_ptr(), size_of::<u16>() * SIZE) };
-   |                                                 ^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type
-
-error: found a count of bytes instead of a count of elements of `T`
-  --> tests/ui/size_of_in_element_count/functions.rs:54:41
-   |
-LL |     unsafe { from_raw_parts(y.as_ptr(), size_of::<u16>() * SIZE) };
-   |                                         ^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type
-
-error: found a count of bytes instead of a count of elements of `T`
---
Full unnormalized output:
error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:18:69
   |
LL |     unsafe { copy_nonoverlapping::<u16>(x.as_ptr(), y.as_mut_ptr(), size_of::<u16>()) };
   |                                                                     ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type
   = note: `-D clippy::size-of-in-element-count` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::size_of_in_element_count)]`

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:21:62
   |
LL |     unsafe { copy_nonoverlapping(x.as_ptr(), y.as_mut_ptr(), size_of_val(&x[0])) };
   |                                                              ^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:24:49
   |
LL |     unsafe { x.as_ptr().copy_to(y.as_mut_ptr(), size_of::<u16>()) };
   |                                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:27:64
   |
LL |     unsafe { x.as_ptr().copy_to_nonoverlapping(y.as_mut_ptr(), size_of::<u16>()) };
   |                                                                ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:30:51
   |
LL |     unsafe { y.as_mut_ptr().copy_from(x.as_ptr(), size_of::<u16>()) };
   |                                                   ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:33:66
   |
LL |     unsafe { y.as_mut_ptr().copy_from_nonoverlapping(x.as_ptr(), size_of::<u16>()) };
   |                                                                  ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:36:47
   |
LL |     unsafe { copy(x.as_ptr(), y.as_mut_ptr(), size_of::<u16>()) };
   |                                               ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:39:47
   |
LL |     unsafe { copy(x.as_ptr(), y.as_mut_ptr(), size_of_val(&x[0])) };
   |                                               ^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:42:66
   |
LL |     unsafe { swap_nonoverlapping(y.as_mut_ptr(), x.as_mut_ptr(), size_of::<u16>() * SIZE) };
   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:45:46
   |
LL |     slice_from_raw_parts_mut(y.as_mut_ptr(), size_of::<u16>() * SIZE);
   |                                              ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:48:38
   |
LL |     slice_from_raw_parts(y.as_ptr(), size_of::<u16>() * SIZE);
   |                                      ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:57:33
   |
LL |     unsafe { y.as_mut_ptr().sub(size_of::<u16>()) };
   |                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:60:29
   |
LL |     y.as_ptr().wrapping_sub(size_of::<u16>());
   |                             ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:63:29
   |
LL |     unsafe { y.as_ptr().add(size_of::<u16>()) };
   |                             ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:66:33
   |
LL |     y.as_mut_ptr().wrapping_add(size_of::<u16>());
   |                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:69:32
   |
LL |     unsafe { y.as_ptr().offset(size_of::<u16>() as isize) };
   |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:72:36
   |
LL |     y.as_mut_ptr().wrapping_offset(size_of::<u16>() as isize);
   |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: aborting due to 17 previous errors
---
full stderr:
error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:18:69
   |
LL |     unsafe { copy_nonoverlapping::<u16>(x.as_ptr(), y.as_mut_ptr(), size_of::<u16>()) };
   |                                                                     ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type
   = note: `-D clippy::size-of-in-element-count` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::size_of_in_element_count)]`

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:21:62
   |
LL |     unsafe { copy_nonoverlapping(x.as_ptr(), y.as_mut_ptr(), size_of_val(&x[0])) };
   |                                                              ^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:24:49
   |
LL |     unsafe { x.as_ptr().copy_to(y.as_mut_ptr(), size_of::<u16>()) };
   |                                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:27:64
   |
LL |     unsafe { x.as_ptr().copy_to_nonoverlapping(y.as_mut_ptr(), size_of::<u16>()) };
   |                                                                ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:30:51
   |
LL |     unsafe { y.as_mut_ptr().copy_from(x.as_ptr(), size_of::<u16>()) };
   |                                                   ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:33:66
   |
LL |     unsafe { y.as_mut_ptr().copy_from_nonoverlapping(x.as_ptr(), size_of::<u16>()) };
   |                                                                  ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:36:47
   |
LL |     unsafe { copy(x.as_ptr(), y.as_mut_ptr(), size_of::<u16>()) };
   |                                               ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:39:47
   |
LL |     unsafe { copy(x.as_ptr(), y.as_mut_ptr(), size_of_val(&x[0])) };
   |                                               ^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:42:66
   |
LL |     unsafe { swap_nonoverlapping(y.as_mut_ptr(), x.as_mut_ptr(), size_of::<u16>() * SIZE) };
   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:45:46
   |
LL |     slice_from_raw_parts_mut(y.as_mut_ptr(), size_of::<u16>() * SIZE);
   |                                              ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:48:38
   |
LL |     slice_from_raw_parts(y.as_ptr(), size_of::<u16>() * SIZE);
   |                                      ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:57:33
   |
LL |     unsafe { y.as_mut_ptr().sub(size_of::<u16>()) };
   |                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:60:29
   |
LL |     y.as_ptr().wrapping_sub(size_of::<u16>());
   |                             ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:63:29
   |
LL |     unsafe { y.as_ptr().add(size_of::<u16>()) };
   |                             ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:66:33
   |
LL |     y.as_mut_ptr().wrapping_add(size_of::<u16>());
   |                                 ^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:69:32
   |
LL |     unsafe { y.as_ptr().offset(size_of::<u16>() as isize) };
   |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: found a count of bytes instead of a count of elements of `T`
##[error]  --> tests/ui/size_of_in_element_count/functions.rs:72:36
   |
LL |     y.as_mut_ptr().wrapping_offset(size_of::<u16>() as isize);
   |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: use a count of elements instead of a count of bytes, it already gets multiplied by the size of the type

error: aborting due to 17 previous errors

Important

For more information how to resolve CI failures of this job, visit this link.

@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #161031) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants