mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 09:14:20 +00:00
26bd86d3d9
The change in07f855d781
introduced a trailing numeral of some kind after the `extern crate compiler_builtins`, which appears to have caused at least two false negatives (654b924
and 657fd24). Instead, this change normalizes the test output to ignore the number (of symbols rustc recognizes?) to avoid needing to re-`--bless` these two tests for unrelated changes.
91 lines
3.4 KiB
Plaintext
91 lines
3.4 KiB
Plaintext
PRINT-BANG INPUT (DISPLAY): struct S;
|
|
PRINT-BANG RE-COLLECTED (DISPLAY): struct S ;
|
|
PRINT-BANG INPUT (DEBUG): TokenStream [
|
|
Group {
|
|
delimiter: None,
|
|
stream: TokenStream [
|
|
Ident {
|
|
ident: "struct",
|
|
span: $DIR/nonterminal-token-hygiene.rs:32:5: 32:11 (#4),
|
|
},
|
|
Ident {
|
|
ident: "S",
|
|
span: $DIR/nonterminal-token-hygiene.rs:32:12: 32:13 (#4),
|
|
},
|
|
Punct {
|
|
ch: ';',
|
|
spacing: Alone,
|
|
span: $DIR/nonterminal-token-hygiene.rs:32:13: 32:14 (#4),
|
|
},
|
|
],
|
|
span: $DIR/nonterminal-token-hygiene.rs:22:27: 22:32 (#5),
|
|
},
|
|
]
|
|
#![feature /* 0#0 */(prelude_import)]
|
|
#![no_std /* 0#0 */]
|
|
// Make sure that marks from declarative macros are applied to tokens in nonterminal.
|
|
|
|
// check-pass
|
|
// compile-flags: -Z span-debug -Z macro-backtrace -Z unpretty=expanded,hygiene
|
|
// compile-flags: -Z trim-diagnostic-paths=no
|
|
// ignore-tidy-linelength
|
|
// normalize-stdout-test "\d+#" -> "0#"
|
|
// normalize-stdout-test "expn\d{3,}" -> "expnNNN"
|
|
// normalize-stdout-test "extern crate compiler_builtins /\* \d+ \*/" -> "extern crate compiler_builtins /* NNN */"
|
|
// aux-build:test-macros.rs
|
|
|
|
#![feature /* 0#0 */(decl_macro)]
|
|
#![no_std /* 0#0 */]
|
|
#[prelude_import /* 0#1 */]
|
|
use ::core /* 0#1 */::prelude /* 0#1 */::rust_2015 /* 0#1 */::*;
|
|
#[macro_use /* 0#1 */]
|
|
extern crate core /* 0#2 */;
|
|
extern crate compiler_builtins /* NNN */ as _ /* 0#2 */;
|
|
// Don't load unnecessary hygiene information from std
|
|
extern crate std /* 0#0 */;
|
|
|
|
#[macro_use /* 0#0 */]
|
|
extern crate test_macros /* 0#0 */;
|
|
|
|
macro_rules! outer
|
|
/*
|
|
0#0
|
|
*/ {
|
|
($item : item) =>
|
|
{
|
|
macro inner() { print_bang! { $item } } inner! () ;
|
|
|
|
} ;
|
|
}
|
|
|
|
struct S /* 0#0 */;
|
|
macro inner /* 0#3 */ { () => { print_bang! { struct S; } } }
|
|
|
|
struct S /* 0#4 */;
|
|
// OK, not a duplicate definition of `S`
|
|
|
|
fn main /* 0#0 */() {}
|
|
|
|
/*
|
|
Expansions:
|
|
crate0::{{expn0}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: Root
|
|
crate0::{{expn1}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: AstPass(StdImports)
|
|
crate0::{{expn2}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: Macro(Bang, "outer")
|
|
crate0::{{expn3}}: parent: crate0::{{expn2}}, call_site_ctxt: #3, def_site_ctxt: #3, kind: Macro(Bang, "inner")
|
|
crate0::{{expn4}}: parent: crate0::{{expn3}}, call_site_ctxt: #5, def_site_ctxt: #0, kind: Macro(Bang, "print_bang")
|
|
crate1::{{expnNNN}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: Macro(Attr, "derive")
|
|
crate1::{{expnNNN}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: Macro(Attr, "derive")
|
|
crate1::{{expnNNN}}: parent: crate0::{{expn0}}, call_site_ctxt: #0, def_site_ctxt: #0, kind: Macro(Bang, "include")
|
|
|
|
SyntaxContexts:
|
|
#0: parent: #0, outer_mark: (crate0::{{expn0}}, Opaque)
|
|
#1: parent: #0, outer_mark: (crate0::{{expn1}}, Opaque)
|
|
#2: parent: #0, outer_mark: (crate0::{{expn1}}, Transparent)
|
|
#3: parent: #0, outer_mark: (crate0::{{expn2}}, SemiTransparent)
|
|
#4: parent: #0, outer_mark: (crate0::{{expn3}}, Opaque)
|
|
#5: parent: #3, outer_mark: (crate0::{{expn3}}, Opaque)
|
|
#6: parent: #0, outer_mark: (crate0::{{expn4}}, Opaque)
|
|
#7: parent: #5, outer_mark: (crate0::{{expn4}}, Transparent)
|
|
#8: parent: #4, outer_mark: (crate0::{{expn4}}, SemiTransparent)
|
|
*/
|