]> www.infradead.org Git - users/jedix/linux-maple.git/commit
rust: macros: enable paste! use from macro_rules!
authorEthan D. Twardy <ethan.twardy@gmail.com>
Thu, 4 Jul 2024 14:55:44 +0000 (09:55 -0500)
committerMiguel Ojeda <ojeda@kernel.org>
Fri, 1 Nov 2024 21:02:53 +0000 (22:02 +0100)
commit7e06561fcd9636b6483c5fcd8fe935475f4944f8
treed7da72455abd034411b96d050a0df1844f511269
parent8d3f50795ac2857b0c2fd43558e078650d58d750
rust: macros: enable paste! use from macro_rules!

According to the rustdoc for the proc_macro crate[1], tokens captured
from a "macro variable" (e.g. from within macro_rules!) may be delimited
by invisible tokens and be contained within a proc_macro::Group.

Previously, this scenario was not handled by macros::paste, which caused
a proc-macro panic when the corresponding tests are enabled. Enable the
tests, and handle this case by making macros::paste::concat recursive.

Link: https://doc.rust-lang.org/stable/proc_macro/enum.Delimiter.html
Signed-off-by: Ethan D. Twardy <ethan.twardy@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://github.com/Rust-for-Linux/linux/issues/1076
Link: https://lore.kernel.org/r/20240704145607.17732-4-ethan.twardy@gmail.com
[ Rebased (one fix was already applied) and reworded. Remove unneeded
  `rust` as language in examples. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/macros/lib.rs
rust/macros/paste.rs