From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- src/test/ui/attributes/key-value-expansion.rs | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/test/ui/attributes/key-value-expansion.rs (limited to 'src/test/ui/attributes/key-value-expansion.rs') diff --git a/src/test/ui/attributes/key-value-expansion.rs b/src/test/ui/attributes/key-value-expansion.rs new file mode 100644 index 000000000..83d601e5e --- /dev/null +++ b/src/test/ui/attributes/key-value-expansion.rs @@ -0,0 +1,55 @@ +// Regression tests for issue #55414, expansion happens in the value of a key-value attribute, +// and the expanded expression is more complex than simply a macro call. + +// aux-build:key-value-expansion.rs + +#![feature(rustc_attrs)] + +extern crate key_value_expansion; + +// Minimized test case. + +macro_rules! bug { + ($expr:expr) => { + #[rustc_dummy = $expr] // Any key-value attribute, not necessarily `doc` + struct S; + }; +} + +// Any expressions containing macro call `X` that's more complex than `X` itself. +// Parentheses will work. +bug!((column!())); //~ ERROR unexpected expression: `(7u32)` + +// Original test case. + +macro_rules! bug { + () => { + bug!("bug" + stringify!(found)); //~ ERROR unexpected expression: `"bug" + "found"` + }; + ($test:expr) => { + #[doc = $test] + struct Test {} + }; +} + +bug!(); + +// Test case from #66804. + +macro_rules! doc_comment { + ($x:expr) => { + #[doc = $x] + extern {} + }; +} + +macro_rules! some_macro { + ($t1: ty) => { + doc_comment! {format!("{coor}", coor = stringify!($t1)).as_str()} + //~^ ERROR unexpected expression: `{ + }; +} + +some_macro!(u8); + +fn main() {} -- cgit v1.2.3