mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
tests: Add regression test for derive token invalidation (#81099)
This commit is contained in:
parent
bb029a1d3f
commit
db6da1268e
23
tests/ui/proc-macro/derive-cfg-nested-tokens.rs
Normal file
23
tests/ui/proc-macro/derive-cfg-nested-tokens.rs
Normal file
@ -0,0 +1,23 @@
|
||||
// A regression test for issue #81099.
|
||||
|
||||
//@ check-pass
|
||||
//@ proc-macro:test-macros.rs
|
||||
|
||||
#![feature(stmt_expr_attributes)]
|
||||
#![feature(proc_macro_hygiene)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate test_macros;
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
struct S {
|
||||
// `print_args` runs twice
|
||||
// - on eagerly configured `S` (from `impl Copy`), only 11 should be printed
|
||||
// - on non-configured `S` (from `struct S`), both 10 and 11 should be printed
|
||||
field: [u8; #[print_attr] {
|
||||
#[cfg(FALSE)] { 10 }
|
||||
#[cfg(not(FALSE))] { 11 }
|
||||
}],
|
||||
}
|
||||
|
||||
fn main() {}
|
149
tests/ui/proc-macro/derive-cfg-nested-tokens.stdout
Normal file
149
tests/ui/proc-macro/derive-cfg-nested-tokens.stdout
Normal file
@ -0,0 +1,149 @@
|
||||
PRINT-ATTR INPUT (DISPLAY): { #[cfg(not(FALSE))] { 11 } }
|
||||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Group {
|
||||
delimiter: Brace,
|
||||
stream: TokenStream [
|
||||
Punct {
|
||||
ch: '#',
|
||||
spacing: Alone,
|
||||
span: #0 bytes(491..492),
|
||||
},
|
||||
Group {
|
||||
delimiter: Bracket,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "cfg",
|
||||
span: #0 bytes(493..496),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "not",
|
||||
span: #0 bytes(497..500),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "FALSE",
|
||||
span: #0 bytes(501..506),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(500..507),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(496..508),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(492..509),
|
||||
},
|
||||
Group {
|
||||
delimiter: Brace,
|
||||
stream: TokenStream [
|
||||
Literal {
|
||||
kind: Integer,
|
||||
symbol: "11",
|
||||
suffix: None,
|
||||
span: #0 bytes(513..515),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(511..517),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(452..523),
|
||||
},
|
||||
]
|
||||
PRINT-ATTR INPUT (DISPLAY): { #[cfg(FALSE)] { 10 } #[cfg(not(FALSE))] { 11 } }
|
||||
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||
Group {
|
||||
delimiter: Brace,
|
||||
stream: TokenStream [
|
||||
Punct {
|
||||
ch: '#',
|
||||
spacing: Alone,
|
||||
span: #0 bytes(462..463),
|
||||
},
|
||||
Group {
|
||||
delimiter: Bracket,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "cfg",
|
||||
span: #0 bytes(464..467),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "FALSE",
|
||||
span: #0 bytes(468..473),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(467..474),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(463..475),
|
||||
},
|
||||
Group {
|
||||
delimiter: Brace,
|
||||
stream: TokenStream [
|
||||
Literal {
|
||||
kind: Integer,
|
||||
symbol: "10",
|
||||
suffix: None,
|
||||
span: #0 bytes(478..480),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(476..482),
|
||||
},
|
||||
Punct {
|
||||
ch: '#',
|
||||
spacing: Alone,
|
||||
span: #0 bytes(491..492),
|
||||
},
|
||||
Group {
|
||||
delimiter: Bracket,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "cfg",
|
||||
span: #0 bytes(493..496),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "not",
|
||||
span: #0 bytes(497..500),
|
||||
},
|
||||
Group {
|
||||
delimiter: Parenthesis,
|
||||
stream: TokenStream [
|
||||
Ident {
|
||||
ident: "FALSE",
|
||||
span: #0 bytes(501..506),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(500..507),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(496..508),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(492..509),
|
||||
},
|
||||
Group {
|
||||
delimiter: Brace,
|
||||
stream: TokenStream [
|
||||
Literal {
|
||||
kind: Integer,
|
||||
symbol: "11",
|
||||
suffix: None,
|
||||
span: #0 bytes(513..515),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(511..517),
|
||||
},
|
||||
],
|
||||
span: #0 bytes(452..523),
|
||||
},
|
||||
]
|
Loading…
Reference in New Issue
Block a user