Skip to content

add trait impls to proc_macro::Ident - #146553

Open
Qelxiros wants to merge 1 commit into
rust-lang:mainfrom
Qelxiros:ident_impls
Open

add trait impls to proc_macro::Ident#146553
Qelxiros wants to merge 1 commit into
rust-lang:mainfrom
Qelxiros:ident_impls

Conversation

@Qelxiros

@Qelxiros Qelxiros commented Sep 14, 2025

Copy link
Copy Markdown
Contributor

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 14, 2025
@rustbot

rustbot commented Sep 14, 2025

Copy link
Copy Markdown
Collaborator

r? @petrochenkov

rustbot has assigned @petrochenkov.
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

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rustbot

rustbot commented Sep 15, 2025

Copy link
Copy Markdown
Collaborator

Some changes occurred in src/tools/clippy

cc @rust-lang/clippy

@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Sep 15, 2025
@Qelxiros

Copy link
Copy Markdown
Contributor Author

Clippy context: An aux crate (proc_macros.rs) was using Ident::to_string before comparing to a string literal, so I updated it to use the PartialEq implementation added in this PR.

@petrochenkov

Copy link
Copy Markdown
Contributor

I suggest splitting this into one PR with (insta-stable) API changes, and then another PR with implementation optimizations.

Also, PartialEq impl for Ident was previously rejected (see #78634 and its linked issue) for the reasons that are still relevant now.
Comparisons with strings are ok, Hash is probably also ok, but not especially useful without Eq.

@petrochenkov petrochenkov 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 Sep 26, 2025
@Qelxiros

Copy link
Copy Markdown
Contributor Author

To clarify, the clippy change was to fix CI.

Thanks for the context! I'd be happy to remove the PartialEq<Self> impl (and Eq, by extension) or modify it to compare spans as well if you think the rest is mergeable, or leave it as is pending further discussion. I'll also link your comment on the ACP for visibility.

@Qelxiros

Qelxiros commented Oct 6, 2025

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 Oct 6, 2025
@petrochenkov

Copy link
Copy Markdown
Contributor

and then another PR with implementation optimizations

This was about moving the code around and providing the optimized implementation instead of just doing .to_string().
I don't think it's necessary to add the new APIs.

The Hash impl is still questionable because it's inconsistent with the only PartialEq impl, but I'll leave this for the libs team to decide.
@rustbot author

@rustbot rustbot 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 Oct 7, 2025
@rustbot

rustbot commented Oct 7, 2025

Copy link
Copy Markdown
Collaborator

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

Comment thread library/proc_macro/src/bridge/ident.rs Outdated
Symbol: PartialEq<str>,
T: AsRef<str> + ?Sized,
{
fn eq(&self, other: &T) -> bool {

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.

@petrochenkov I'm a little confused. Do you mean that this implementation should be reduced to self.to_string() == other.as_ref()? That seems to miss the point of the ACP, which was to compare Idents with Strings (and friends) without an allocation.

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.

Do you mean that this implementation should be reduced to self.to_string() == other.as_ref()?

Yes.
Allocation or not is an implementation detail, that can be changed at any later point without any process or team decisions.

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.

Did you push the changes?
I still see all the unnecessary code moving and optimizations.

@Qelxiros

Qelxiros commented Oct 7, 2025

Copy link
Copy Markdown
Contributor Author

@rustbot ready

@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 Oct 7, 2025
@dtolnay dtolnay added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed I-libs-api-nominated [DEPRECATED; DO NOT USE] S-waiting-on-t-libs-api [DEPRECATED; DO NOT USE] T-clippy Relevant to the Clippy team. labels Nov 4, 2025
@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Nov 5, 2025
@Qelxiros

Qelxiros commented Nov 5, 2025

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 Nov 5, 2025
@dtolnay dtolnay assigned dtolnay and unassigned petrochenkov Nov 5, 2025
@rust-log-analyzer

This comment has been minimized.

@dtolnay dtolnay removed the T-clippy Relevant to the Clippy team. label Nov 6, 2025
@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Nov 6, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-tools 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_1.rs (revision `edition2015`) ... ok
tests/ui/should_impl_trait/method_list_1.rs (revision `edition2021`) ... ok

FAILED TEST: tests/ui/almost_complete_range.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/deps" "--sysroot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--crate-type=proc-macro" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/auxiliary" "tests/ui/auxiliary/proc_macros.rs" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rlib" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rmeta" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rlib" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rmeta" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rlib" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rmeta" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rlib" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rmeta" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rlib" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rmeta" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rlib" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rmeta" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rlib" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rmeta" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rlib" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rmeta" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rlib" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rmeta" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/debug/deps" "--edition" "2024" "--emit=link"

error: aux build failed
##[error] --> tests/ui/almost_complete_range.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/almost_complete_range.rs
  |
error: compilation of aux build failed failed with exit status: 1


full stderr:
---

error: aux build failed
##[error] --> tests/ui/allow_attributes.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/allow_attributes.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/allow_attributes_without_reason.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/allow_attributes_without_reason.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/arc_with_non_send_sync.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/arc_with_non_send_sync.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/as_conversions.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/as_conversions.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/borrow_as_ptr.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/borrow_as_ptr.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/borrow_deref_ref.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/borrow_deref_ref.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/default_numeric_fallback_f64.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/default_numeric_fallback_f64.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/default_numeric_fallback_i32.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/default_numeric_fallback_i32.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/default_trait_access.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/default_trait_access.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/deref_addrof_macro.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/deref_addrof_macro.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/disallowed_names.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/disallowed_names.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/doc_unsafe.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/doc_unsafe.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/double_parens.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/double_parens.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/empty_loop.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/empty_loop.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/equatable_if_let.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/equatable_if_let.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/explicit_deref_methods.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/explicit_deref_methods.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/extra_unused_type_parameters.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/extra_unused_type_parameters.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/field_reassign_with_default.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/field_reassign_with_default.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/filter_map_bool_then.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/filter_map_bool_then.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/four_forward_slashes.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/four_forward_slashes.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/implicit_hasher.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/implicit_hasher.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/implicit_return.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/implicit_return.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/inconsistent_struct_constructor.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/inconsistent_struct_constructor.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/indexing_slicing_index.rs:2:15
  |
2 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/indexing_slicing_index.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/indexing_slicing_slice.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/indexing_slicing_slice.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/infinite_loops.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/infinite_loops.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/into_iter_without_iter.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/into_iter_without_iter.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/iter_over_hash_type.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/iter_over_hash_type.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/iter_skip_zero.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/iter_skip_zero.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/iter_without_into_iter.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/iter_without_into_iter.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/large_enum_variant.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/large_enum_variant.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/large_stack_arrays.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/large_stack_arrays.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/legacy_numeric_constants.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/legacy_numeric_constants.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/legacy_numeric_constants_unfixable.rs:3:14
  |
3 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/legacy_numeric_constants_unfixable.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/let_underscore_untyped.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/let_underscore_untyped.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/let_with_type_underscore.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/let_with_type_underscore.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/manual_float_methods.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/manual_float_methods.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/manual_is_multiple_of.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/manual_is_multiple_of.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/manual_rem_euclid.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/manual_rem_euclid.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/manual_slice_size_calculation.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/manual_slice_size_calculation.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/manual_try_fold.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/manual_try_fold.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/mem_replace_macro.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/mem_replace_macro.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/min_ident_chars.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/min_ident_chars.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/missing_doc.rs:2:15
  |
2 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/missing_doc.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/missing_doc_impl.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/missing_doc_impl.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/mistyped_literal_suffix.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/mistyped_literal_suffix.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/multiple_unsafe_ops_per_block.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/multiple_unsafe_ops_per_block.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/must_use_unit.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/must_use_unit.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/mut_mut.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/mut_mut.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_ifs.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_ifs.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_late_init.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_late_init.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_lifetimes.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_lifetimes.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_maybe_sized.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_maybe_sized.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_pub_self.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_pub_self.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_return.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_return.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/needless_return_with_question_mark.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/needless_return_with_question_mark.rs
  |

full stderr:
previous build failed
full stdout:



FAILED TEST: tests/ui/non_canonical_clone_impl.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/deps" "--sysroot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--crate-type=lib" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui" "tests/ui/non_canonical_clone_impl.rs" "--extern" "proc_macro_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/auxiliary/libproc_macro_derive.so" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/auxiliary" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rlib" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rmeta" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rlib" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rmeta" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rlib" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rmeta" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rlib" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rmeta" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rlib" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rmeta" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rlib" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rmeta" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rlib" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rmeta" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rlib" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rmeta" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rlib" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rmeta" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/debug/deps" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/non_canonical_clone_impl.stderr` to the actual output
--- tests/ui/non_canonical_clone_impl.stderr
+++ <stderr output>
---
-   |  _____________________________^
-LL | |
-LL | |         Self(self.0)
-LL | |     }
-   | |_____^ help: change this to: `{ *self }`
-   |
-   = note: `-D clippy::non-canonical-clone-impl` implied by `-D warnings`
-   = help: to override `-D warnings` add `#[allow(clippy::non_canonical_clone_impl)]`
+LL | extern crate proc_macros;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
---
-   |  _____________________________^
-LL | |
-LL | |         Self(self.0)
-LL | |     }
-   | |_____^ help: change this to: `{ *self }`
-
-error: unnecessary implementation of `clone_from` on a `Copy` type
-  --> tests/ui/non_canonical_clone_impl.rs:92:5
+  ::: /checkout/library/core/src/macros/mod.rs:1177:5
    |
---
-   |  _____________________________________^
-LL | |
-LL | |                 todo!()
-LL | |             }
-   | |_____________^ help: change this to: `{ *self }`
-   |
-   = note: this error originates in the macro `__inline_mac_mod_issue12788` (in Nightly builds, run with -Z macro-backtrace for more info)
+   = note: `inline` is in scope, but it is an attribute: `#[inline]`
 
-error: aborting due to 5 previous errors
---



FAILED TEST: tests/ui/non_canonical_partial_ord_impl.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/deps" "--sysroot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--crate-type=lib" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui" "tests/ui/non_canonical_partial_ord_impl.rs" "--extern" "proc_macro_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/auxiliary/libproc_macro_derive.so" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/ui_test/0/tests/ui/auxiliary" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rlib" "--extern" "futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libfutures-a8bf6f69c9b80e37.rmeta" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rlib" "--extern" "itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libitertools-2d82d3ce68d9c3ee.rmeta" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rlib" "--extern" "libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/liblibc-e86cd1a7c22fc60c.rmeta" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rlib" "--extern" "parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libparking_lot-a94abfa769f04e5d.rmeta" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rlib" "--extern" "quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libquote-22b65b7753b00e23.rmeta" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rlib" "--extern" "regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libregex-4368476ea091f8ef.rmeta" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rlib" "--extern" "serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libserde-978a92b8a77cdf3d.rmeta" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rlib" "--extern" "syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libsyn-fdddf18d670fbd00.rmeta" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rlib" "--extern" "tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps/libtokio-1fc6a815de90452d.rmeta" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/debug/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/debug/deps" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/non_canonical_partial_ord_impl.stderr` to the actual output
--- tests/ui/non_canonical_partial_ord_impl.stderr
+++ <stderr output>
-error: non-canonical implementation of `partial_cmp` on an `Ord` type
+error[E0463]: can't find crate for `proc_macros`
-  --> tests/ui/non_canonical_partial_ord_impl.rs:20:1
+  --> tests/ui/non_canonical_partial_ord_impl.rs:4:1
    |
-LL | /  impl PartialOrd for A {
-LL | |
-LL | |      fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-   | | _____________________________________________________________-
-LL | ||         todo!();
-LL | ||     }
-   | ||_____- help: change this to: `{ Some(self.cmp(other)) }`
-LL | |  }
-   | |__^
-   |
-   = note: `-D clippy::non-canonical-partial-ord-impl` implied by `-D warnings`
-   = help: to override `-D warnings` add `#[allow(clippy::non_canonical_partial_ord_impl)]`
---
+  --> tests/ui/non_canonical_partial_ord_impl.rs:181:5
    |
-LL | / impl PartialOrd for C {
-LL | |
-LL | |     fn partial_cmp(&self, _: &Self) -> Option<Ordering> {
-LL | |         todo!();
-LL | |     }
-LL | | }
-   | |_^
+LL |     inline!(
+   |     ^^^^^^ help: a macro with a similar name exists: `line`
    |
-help: change this to
+  ::: /checkout/library/core/src/macros/mod.rs:1177:5
    |
-LL -     fn partial_cmp(&self, _: &Self) -> Option<Ordering> {
+LL |     macro_rules! line {
-LL +     fn partial_cmp(&self, other: &Self) -> Option<Ordering> { Some(self.cmp(other)) }
+   |     ----------------- similarly named macro `line` defined here
    |
+   = note: `inline` is in scope, but it is an attribute: `#[inline]`
 
-error: non-canonical implementation of `partial_cmp` on an `Ord` type
-  --> tests/ui/non_canonical_partial_ord_impl.rs:191:9
-   |
-LL | /          impl PartialOrd for A {
-LL | |
-LL | |              fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-   | | _____________________________________________________________________-
-LL | ||                 todo!();
-LL | ||             }
-   | ||_____________- help: change this to: `{ Some(self.cmp(other)) }`
-LL | |          }
-   | |__________^
-   |
-   = note: this error originates in the macro `__inline_mac_mod_issue12788` (in Nightly builds, run with -Z macro-backtrace for more info)
+error: aborting due to 2 previous errors
 
-error: non-canonical implementation of `partial_cmp` on an `Ord` type
-  --> tests/ui/non_canonical_partial_ord_impl.rs:271:1
-   |
-LL | /  impl PartialOrd for K {
-LL | |
-LL | |      fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-   | | _____________________________________________________________-
-LL | ||         Ordering::Greater.into()
-LL | ||     }
-   | ||_____- help: change this to: `{ Some(self.cmp(other)) }`
-LL | |  }
-   | |__^
-
-error: non-canonical implementation of `partial_cmp` on an `Ord` type
-  --> tests/ui/non_canonical_partial_ord_impl.rs:289:1
-   |
-LL | /  impl PartialOrd for L {
-LL | |
-LL | |      fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
-   | | _____________________________________________________________-
-LL | ||         Some(other.cmp(self))
-LL | ||     }
-   | ||_____- help: change this to: `{ Some(self.cmp(other)) }`
-LL | |  }
-   | |__^
-
-error: aborting due to 5 previous errors
-
---

error: aux build failed
##[error] --> tests/ui/option_env_unwrap.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/option_env_unwrap.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/patterns.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/patterns.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/ptr_as_ptr.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/ptr_as_ptr.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/ptr_cast_constness.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/ptr_cast_constness.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/pub_with_shorthand.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/pub_with_shorthand.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/pub_without_shorthand.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/pub_without_shorthand.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/redundant_at_rest_pattern.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/redundant_at_rest_pattern.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/redundant_field_names.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/redundant_field_names.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/redundant_guards.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/redundant_guards.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/redundant_locals.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/redundant_locals.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/redundant_pub_crate.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/redundant_pub_crate.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/reserve_after_initialization.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/reserve_after_initialization.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/single_call_fn.rs:2:14
  |
2 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/single_call_fn.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/single_match_else.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/single_match_else.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/single_range_in_vec_init.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/single_range_in_vec_init.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/string_add.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/string_add.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/string_lit_chars_any.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/string_lit_chars_any.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/struct_fields.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/struct_fields.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/toplevel_ref_arg.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/toplevel_ref_arg.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/toplevel_ref_arg_non_rustfix.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/toplevel_ref_arg_non_rustfix.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/try_err.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/try_err.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/tuple_array_conversions.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/tuple_array_conversions.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/uninlined_format_args.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/uninlined_format_args.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unit_arg.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/unit_arg.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unnecessary_fallible_conversions_unfixable.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unnecessary_fallible_conversions_unfixable.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unnecessary_lazy_eval.rs:1:15
  |
1 | //@aux-build: proc_macros.rs
  |               ^^^^^^^^^^^^^^ tests/ui/unnecessary_lazy_eval.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unnecessary_map_or.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unnecessary_map_or.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unnecessary_unsafety_doc.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unnecessary_unsafety_doc.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unneeded_field_pattern.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unneeded_field_pattern.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unneeded_wildcard_pattern.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unneeded_wildcard_pattern.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unused_result_ok.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unused_result_ok.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/unused_trait_names.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/unused_trait_names.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/useless_concat.rs:1:14
  |
1 | //@aux-build:proc_macros.rs
  |              ^^^^^^^^^^^^^^ tests/ui/useless_concat.rs
  |

full stderr:
previous build failed
full stdout:
---
stack backtrace:
error: aux build failed
##[error] --> tests/ui/crashes/ice-10148.rs:1:14
  |
1 | //@aux-build:../auxiliary/proc_macros.rs
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/ui/crashes/ice-10148.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/items_after_test_module/after_proc_macros.rs:2:14
  |
2 | //@aux-build:../auxiliary/proc_macros.rs
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/ui/items_after_test_module/after_proc_macros.rs
  |

full stderr:
previous build failed
full stdout:
---

error: aux build failed
##[error] --> tests/ui/missing_const_for_fn/cant_be_const.rs:7:14
  |
7 | //@aux-build:../auxiliary/proc_macros.rs
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/ui/missing_const_for_fn/cant_be_const.rs
  |

full stderr:
previous build failed
full stdout:

@reddevilmidzy reddevilmidzy 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 Jan 4, 2026
@Dylan-DPC Dylan-DPC added S-waiting-on-ACP Status: PR has an ACP and is waiting for the ACP to complete. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 1, 2026
@rust-bors

rust-bors Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

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

@tgross35

Copy link
Copy Markdown
Contributor

Looks like there was some labeling confusion above but as I understand it, this needs a test fixed then it's ready for team discussion again.

It would be good to exercise these in a test to make sure we don't regress exact behavior here, e.g. w.r.t. raw identifiers.

@rustbot author
@rustbot label +needs-fcp

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. needs-fcp This change is insta-stable, or significant enough to need a team FCP to proceed. labels Jun 26, 2026
@clarfonthey clarfonthey added T-libs Relevant to the library team, which will review and decide on the PR/issue. and removed T-libs-api [DEPRECATED; DO NOT USE] labels Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-fcp This change is insta-stable, or significant enough to need a team FCP to proceed. S-waiting-on-ACP Status: PR has an ACP and is waiting for the ACP to complete. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-clippy Relevant to the Clippy team. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.