-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
impl_stable_hash_for: support enums and tuple structs with generic parameters #55722
Conversation
r? @varkor (rust_highfive has picked a reviewer for you, use r? to override) |
// twice for this purpose | ||
(impl<$($lt:lifetime $(: $lt_bound:lifetime)* ),* $(,)* $($T:ident),* $(,)*> | ||
for enum $enum_name:path | ||
[ $enum_path:path ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does seem a little unfortunate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I tried hard to avoid it, but I just found no way. You cannot concatenate to a path in macros, nor did I find a way to convert a tt
into a path.
I tried using a keyword as separator between the two paths, or @
, but the compiler rejected everything. I basically randomly tried separators and brackets were the first one that worked.^^
This seems like a clear win, even if it does require repeating the enum name for the variants. @bors r+ |
📌 Commit db3c69e has been approved by |
impl_stable_hash_for: support enums and tuple structs with generic parameters Port a bunch of implementations over to the macro, now that that is possible.
impl_stable_hash_for: support enums and tuple structs with generic parameters Port a bunch of implementations over to the macro, now that that is possible.
Rollup of 20 pull requests Successful merges: - #55136 (Remove short doc where it starts with a codeblock) - #55711 (Format BtreeMap::range_mut example) - #55722 (impl_stable_hash_for: support enums and tuple structs with generic parameters) - #55754 (Avoid converting bytes to UTF-8 strings to print, just pass bytes to stdout/err) - #55804 (rustdoc: don't inline `pub use some_crate` unless directly asked to) - #55805 (Move `static_assert!` into librustc_data_structures) - #55837 (Make PhantomData #[structural_match]) - #55840 (Fix TLS errors when downloading stage0) - #55843 (add FromIterator<A> to Box<[A]>) - #55858 (Small fixes on code blocks in rustdoc) - #55863 (Fix a typo in std::panic) - #55870 (Fix typos.) - #55874 (string: Add documentation for `From` impls) - #55879 (save-analysis: Don't panic for macro-generated use globs) - #55882 (Reference count `crate_inherent_impls`s return value.) - #55888 (miri: for uniformity, also move memory_deallocated to AllocationExtra) - #55889 (global allocators: add a few comments) - #55896 (Document optimizations enabled by FusedIterator) - #55905 (Change `Lit::short_name` to `Lit::literal_name`.) - #55908 (Fix their/there grammar nit)
Port a bunch of implementations over to the macro, now that that is possible.