AttrStyle::Inner => rustc_parse::fake_token_stream(
&self.cx.sess.parse_sess,
&item.into_nonterminal(),
- span,
),
};
let attr_item = attr.unwrap_normal_item();
// with exception of the derive container case which is not resolved and can get
// its expansion data immediately.
let expn_data = match &kind {
- InvocationKind::DeriveContainer { item, .. } => Some(ExpnData {
- parent: self.cx.current_expansion.id,
- ..ExpnData::default(
+ InvocationKind::DeriveContainer { item, .. } => {
+ let mut expn_data = ExpnData::default(
ExpnKind::Macro(MacroKind::Attr, sym::derive),
item.span(),
self.cx.sess.parse_sess.edition,
None,
- )
- }),
+ );
+ expn_data.parent = self.cx.current_expansion.id;
+ Some(expn_data)
+ }
_ => None,
};
let expn_id = ExpnId::fresh(expn_data);