rustc_parse: Better spans for synthesized token streams
This commit is contained in:
parent
b5c496de37
commit
0dab076358
9 changed files with 151 additions and 167 deletions
|
@ -771,7 +771,7 @@ impl fmt::Display for NonterminalKind {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Nonterminal {
|
impl Nonterminal {
|
||||||
fn span(&self) -> Span {
|
pub fn span(&self) -> Span {
|
||||||
match self {
|
match self {
|
||||||
NtItem(item) => item.span,
|
NtItem(item) => item.span,
|
||||||
NtBlock(block) => block.span,
|
NtBlock(block) => block.span,
|
||||||
|
|
|
@ -206,8 +206,7 @@ pub trait ResolverAstLowering {
|
||||||
) -> LocalDefId;
|
) -> LocalDefId;
|
||||||
}
|
}
|
||||||
|
|
||||||
type NtToTokenstream =
|
type NtToTokenstream = fn(&Nonterminal, &ParseSess, CanSynthesizeMissingTokens) -> TokenStream;
|
||||||
fn(&Nonterminal, &ParseSess, Span, CanSynthesizeMissingTokens) -> TokenStream;
|
|
||||||
|
|
||||||
/// Context of `impl Trait` in code, which determines whether it is allowed in an HIR subtree,
|
/// Context of `impl Trait` in code, which determines whether it is allowed in an HIR subtree,
|
||||||
/// and if so, what meaning it has.
|
/// and if so, what meaning it has.
|
||||||
|
@ -417,12 +416,7 @@ impl<'a> TokenStreamLowering<'a> {
|
||||||
fn lower_token(&mut self, token: Token) -> TokenStream {
|
fn lower_token(&mut self, token: Token) -> TokenStream {
|
||||||
match token.kind {
|
match token.kind {
|
||||||
token::Interpolated(nt) => {
|
token::Interpolated(nt) => {
|
||||||
let tts = (self.nt_to_tokenstream)(
|
let tts = (self.nt_to_tokenstream)(&nt, self.parse_sess, self.synthesize_tokens);
|
||||||
&nt,
|
|
||||||
self.parse_sess,
|
|
||||||
token.span,
|
|
||||||
self.synthesize_tokens,
|
|
||||||
);
|
|
||||||
TokenTree::Delimited(
|
TokenTree::Delimited(
|
||||||
DelimSpan::from_single(token.span),
|
DelimSpan::from_single(token.span),
|
||||||
DelimToken::NoDelim,
|
DelimToken::NoDelim,
|
||||||
|
|
|
@ -141,7 +141,7 @@ impl Annotatable {
|
||||||
}
|
}
|
||||||
|
|
||||||
crate fn into_tokens(self, sess: &ParseSess) -> TokenStream {
|
crate fn into_tokens(self, sess: &ParseSess) -> TokenStream {
|
||||||
nt_to_tokenstream(&self.into_nonterminal(), sess, DUMMY_SP, CanSynthesizeMissingTokens::No)
|
nt_to_tokenstream(&self.into_nonterminal(), sess, CanSynthesizeMissingTokens::No)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn expect_item(self) -> P<ast::Item> {
|
pub fn expect_item(self) -> P<ast::Item> {
|
||||||
|
|
|
@ -743,7 +743,6 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
|
||||||
AttrStyle::Inner => rustc_parse::fake_token_stream(
|
AttrStyle::Inner => rustc_parse::fake_token_stream(
|
||||||
&self.cx.sess.parse_sess,
|
&self.cx.sess.parse_sess,
|
||||||
&item.into_nonterminal(),
|
&item.into_nonterminal(),
|
||||||
span,
|
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
let attr_item = attr.unwrap_normal_item();
|
let attr_item = attr.unwrap_normal_item();
|
||||||
|
|
|
@ -94,12 +94,7 @@ impl MultiItemModifier for ProcMacroDerive {
|
||||||
let input = if item.pretty_printing_compatibility_hack() {
|
let input = if item.pretty_printing_compatibility_hack() {
|
||||||
TokenTree::token(token::Interpolated(Lrc::new(item)), DUMMY_SP).into()
|
TokenTree::token(token::Interpolated(Lrc::new(item)), DUMMY_SP).into()
|
||||||
} else {
|
} else {
|
||||||
nt_to_tokenstream(
|
nt_to_tokenstream(&item, &ecx.sess.parse_sess, CanSynthesizeMissingTokens::Yes)
|
||||||
&item,
|
|
||||||
&ecx.sess.parse_sess,
|
|
||||||
DUMMY_SP,
|
|
||||||
CanSynthesizeMissingTokens::Yes,
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let server = proc_macro_server::Rustc::new(ecx);
|
let server = proc_macro_server::Rustc::new(ecx);
|
||||||
|
|
|
@ -179,7 +179,7 @@ impl FromInternal<(TreeAndSpacing, &'_ ParseSess, &'_ mut Vec<Self>)>
|
||||||
{
|
{
|
||||||
TokenTree::Ident(Ident::new(sess, name.name, is_raw, name.span))
|
TokenTree::Ident(Ident::new(sess, name.name, is_raw, name.span))
|
||||||
} else {
|
} else {
|
||||||
let stream = nt_to_tokenstream(&nt, sess, span, CanSynthesizeMissingTokens::No);
|
let stream = nt_to_tokenstream(&nt, sess, CanSynthesizeMissingTokens::No);
|
||||||
TokenTree::Group(Group {
|
TokenTree::Group(Group {
|
||||||
delimiter: Delimiter::None,
|
delimiter: Delimiter::None,
|
||||||
stream,
|
stream,
|
||||||
|
|
|
@ -236,7 +236,6 @@ pub fn parse_in<'a, T>(
|
||||||
pub fn nt_to_tokenstream(
|
pub fn nt_to_tokenstream(
|
||||||
nt: &Nonterminal,
|
nt: &Nonterminal,
|
||||||
sess: &ParseSess,
|
sess: &ParseSess,
|
||||||
span: Span,
|
|
||||||
synthesize_tokens: CanSynthesizeMissingTokens,
|
synthesize_tokens: CanSynthesizeMissingTokens,
|
||||||
) -> TokenStream {
|
) -> TokenStream {
|
||||||
// A `Nonterminal` is often a parsed AST item. At this point we now
|
// A `Nonterminal` is often a parsed AST item. At this point we now
|
||||||
|
@ -256,11 +255,9 @@ pub fn nt_to_tokenstream(
|
||||||
|tokens: Option<&LazyTokenStream>| tokens.as_ref().map(|t| t.create_token_stream());
|
|tokens: Option<&LazyTokenStream>| tokens.as_ref().map(|t| t.create_token_stream());
|
||||||
|
|
||||||
let tokens = match *nt {
|
let tokens = match *nt {
|
||||||
Nonterminal::NtItem(ref item) => {
|
Nonterminal::NtItem(ref item) => prepend_attrs(sess, &item.attrs, nt, item.tokens.as_ref()),
|
||||||
prepend_attrs(sess, &item.attrs, nt, span, item.tokens.as_ref())
|
|
||||||
}
|
|
||||||
Nonterminal::NtBlock(ref block) => convert_tokens(block.tokens.as_ref()),
|
Nonterminal::NtBlock(ref block) => convert_tokens(block.tokens.as_ref()),
|
||||||
Nonterminal::NtStmt(ref stmt) => prepend_attrs(sess, stmt.attrs(), nt, span, stmt.tokens()),
|
Nonterminal::NtStmt(ref stmt) => prepend_attrs(sess, stmt.attrs(), nt, stmt.tokens()),
|
||||||
Nonterminal::NtPat(ref pat) => convert_tokens(pat.tokens.as_ref()),
|
Nonterminal::NtPat(ref pat) => convert_tokens(pat.tokens.as_ref()),
|
||||||
Nonterminal::NtTy(ref ty) => convert_tokens(ty.tokens.as_ref()),
|
Nonterminal::NtTy(ref ty) => convert_tokens(ty.tokens.as_ref()),
|
||||||
Nonterminal::NtIdent(ident, is_raw) => {
|
Nonterminal::NtIdent(ident, is_raw) => {
|
||||||
|
@ -277,31 +274,30 @@ pub fn nt_to_tokenstream(
|
||||||
if expr.tokens.is_none() {
|
if expr.tokens.is_none() {
|
||||||
debug!("missing tokens for expr {:?}", expr);
|
debug!("missing tokens for expr {:?}", expr);
|
||||||
}
|
}
|
||||||
prepend_attrs(sess, &expr.attrs, nt, span, expr.tokens.as_ref())
|
prepend_attrs(sess, &expr.attrs, nt, expr.tokens.as_ref())
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(tokens) = tokens {
|
if let Some(tokens) = tokens {
|
||||||
return tokens;
|
return tokens;
|
||||||
} else if matches!(synthesize_tokens, CanSynthesizeMissingTokens::Yes) {
|
} else if matches!(synthesize_tokens, CanSynthesizeMissingTokens::Yes) {
|
||||||
return fake_token_stream(sess, nt, span);
|
return fake_token_stream(sess, nt);
|
||||||
} else {
|
} else {
|
||||||
let pretty = rustc_ast_pretty::pprust::nonterminal_to_string_no_extra_parens(&nt);
|
let pretty = rustc_ast_pretty::pprust::nonterminal_to_string_no_extra_parens(&nt);
|
||||||
panic!("Missing tokens at {:?} for nt {:?}", span, pretty);
|
panic!("Missing tokens for nt {:?}", pretty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fake_token_stream(sess: &ParseSess, nt: &Nonterminal, span: Span) -> TokenStream {
|
pub fn fake_token_stream(sess: &ParseSess, nt: &Nonterminal) -> TokenStream {
|
||||||
let source = pprust::nonterminal_to_string(nt);
|
let source = pprust::nonterminal_to_string(nt);
|
||||||
let filename = FileName::macro_expansion_source_code(&source);
|
let filename = FileName::macro_expansion_source_code(&source);
|
||||||
parse_stream_from_source_str(filename, source, sess, Some(span))
|
parse_stream_from_source_str(filename, source, sess, Some(nt.span()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn prepend_attrs(
|
fn prepend_attrs(
|
||||||
sess: &ParseSess,
|
sess: &ParseSess,
|
||||||
attrs: &[ast::Attribute],
|
attrs: &[ast::Attribute],
|
||||||
nt: &Nonterminal,
|
nt: &Nonterminal,
|
||||||
span: Span,
|
|
||||||
tokens: Option<&tokenstream::LazyTokenStream>,
|
tokens: Option<&tokenstream::LazyTokenStream>,
|
||||||
) -> Option<tokenstream::TokenStream> {
|
) -> Option<tokenstream::TokenStream> {
|
||||||
if attrs.is_empty() {
|
if attrs.is_empty() {
|
||||||
|
@ -312,7 +308,7 @@ fn prepend_attrs(
|
||||||
// FIXME: Correctly handle tokens for inner attributes.
|
// FIXME: Correctly handle tokens for inner attributes.
|
||||||
// For now, we fall back to reparsing the original AST node
|
// For now, we fall back to reparsing the original AST node
|
||||||
if attr.style == ast::AttrStyle::Inner {
|
if attr.style == ast::AttrStyle::Inner {
|
||||||
return Some(fake_token_stream(sess, nt, span));
|
return Some(fake_token_stream(sess, nt));
|
||||||
}
|
}
|
||||||
builder.push(attr.tokens());
|
builder.push(attr.tokens());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1211,141 +1211,141 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "allow",
|
ident: "allow",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "dead_code",
|
ident: "dead_code",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "print_helper",
|
ident: "print_helper",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "b",
|
ident: "b",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "print_helper",
|
ident: "print_helper",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "a",
|
ident: "a",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "struct",
|
ident: "struct",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "Foo",
|
ident: "Foo",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '<',
|
ch: '<',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "B",
|
ident: "B",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '>',
|
ch: '>',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "second",
|
ident: "second",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ':',
|
ch: ':',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "bool",
|
ident: "bool",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "third",
|
ident: "third",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ':',
|
ch: ':',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "u8",
|
ident: "u8",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ';',
|
ch: ';',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
|
@ -1353,58 +1353,58 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "cfg",
|
ident: "cfg",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "not",
|
ident: "not",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "FALSE",
|
ident: "FALSE",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "struct",
|
ident: "struct",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "Inner",
|
ident: "Inner",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ';',
|
ch: ';',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "match",
|
ident: "match",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "true",
|
ident: "true",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
|
@ -1412,146 +1412,146 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "allow",
|
ident: "allow",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "warnings",
|
ident: "warnings",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "false",
|
ident: "false",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '=',
|
ch: '=',
|
||||||
spacing: Joint,
|
spacing: Joint,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '>',
|
ch: '>',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
stream: TokenStream [],
|
stream: TokenStream [],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "_",
|
ident: "_",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '=',
|
ch: '=',
|
||||||
spacing: Joint,
|
spacing: Joint,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '>',
|
ch: '>',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
stream: TokenStream [],
|
stream: TokenStream [],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ';',
|
ch: ';',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "print_helper",
|
ident: "print_helper",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "c",
|
ident: "c",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "cfg",
|
ident: "cfg",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "not",
|
ident: "not",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "FALSE",
|
ident: "FALSE",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "fn",
|
ident: "fn",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "kept_fn",
|
ident: "kept_fn",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [],
|
stream: TokenStream [],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
|
@ -1559,82 +1559,82 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Joint,
|
spacing: Joint,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '!',
|
ch: '!',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "cfg",
|
ident: "cfg",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "not",
|
ident: "not",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "FALSE",
|
ident: "FALSE",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "let",
|
ident: "let",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "my_val",
|
ident: "my_val",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '=',
|
ch: '=',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "true",
|
ident: "true",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ';',
|
ch: ';',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "enum",
|
ident: "enum",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "TupleEnum",
|
ident: "TupleEnum",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "Foo",
|
ident: "Foo",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
|
@ -1642,69 +1642,69 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "cfg",
|
ident: "cfg",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "not",
|
ident: "not",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "FALSE",
|
ident: "FALSE",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "i32",
|
ident: "i32",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "u8",
|
ident: "u8",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "struct",
|
ident: "struct",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "TupleStruct",
|
ident: "TupleStruct",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
|
@ -1712,120 +1712,120 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "cfg",
|
ident: "cfg",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "not",
|
ident: "not",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "FALSE",
|
ident: "FALSE",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "i32",
|
ident: "i32",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "u8",
|
ident: "u8",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ';',
|
ch: ';',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Literal {
|
Literal {
|
||||||
kind: Integer,
|
kind: Integer,
|
||||||
symbol: "0",
|
symbol: "0",
|
||||||
suffix: None,
|
suffix: None,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "print_helper",
|
ident: "print_helper",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Parenthesis,
|
delimiter: Parenthesis,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "d",
|
ident: "d",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "fourth",
|
ident: "fourth",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ':',
|
ch: ':',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "B",
|
ident: "B",
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: ',',
|
ch: ',',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-75930-derive-cfg.rs:1:1: 1:1 (#0),
|
span: $DIR/issue-75930-derive-cfg.rs:21:1: 64:2 (#0),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
@ -34,11 +34,11 @@ PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "mod",
|
ident: "mod",
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Ident {
|
Ident {
|
||||||
ident: "bar",
|
ident: "bar",
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Brace,
|
delimiter: Brace,
|
||||||
|
@ -46,36 +46,36 @@ PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||||
Punct {
|
Punct {
|
||||||
ch: '#',
|
ch: '#',
|
||||||
spacing: Joint,
|
spacing: Joint,
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '!',
|
ch: '!',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Group {
|
Group {
|
||||||
delimiter: Bracket,
|
delimiter: Bracket,
|
||||||
stream: TokenStream [
|
stream: TokenStream [
|
||||||
Ident {
|
Ident {
|
||||||
ident: "doc",
|
ident: "doc",
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Punct {
|
Punct {
|
||||||
ch: '=',
|
ch: '=',
|
||||||
spacing: Alone,
|
spacing: Alone,
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
Literal {
|
Literal {
|
||||||
kind: StrRaw(0),
|
kind: StrRaw(0),
|
||||||
symbol: " Foo",
|
symbol: " Foo",
|
||||||
suffix: None,
|
suffix: None,
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:27:5: 29:6 (#0),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
span: $DIR/issue-78675-captured-inner-attrs.rs:22:13: 22:18 (#4),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue