Auto merge of #38947 - nrc:custom-derive-span, r=jseyfried
Give custom derive spans an expansion ID r? @jseyfried
This commit is contained in:
commit
2fa9feb37a
@ -235,8 +235,21 @@ pub fn expand_derive(cx: &mut ExtCtxt,
|
|||||||
let titem = cx.meta_list_item_word(titem.span, titem.name().unwrap());
|
let titem = cx.meta_list_item_word(titem.span, titem.name().unwrap());
|
||||||
let mitem = cx.meta_list(titem.span, derive, vec![titem]);
|
let mitem = cx.meta_list(titem.span, derive, vec![titem]);
|
||||||
let item = Annotatable::Item(item);
|
let item = Annotatable::Item(item);
|
||||||
|
|
||||||
|
let span = Span {
|
||||||
|
expn_id: cx.codemap().record_expansion(codemap::ExpnInfo {
|
||||||
|
call_site: mitem.span,
|
||||||
|
callee: codemap::NameAndSpan {
|
||||||
|
format: codemap::MacroAttribute(Symbol::intern(&format!("derive({})", tname))),
|
||||||
|
span: None,
|
||||||
|
allow_internal_unstable: false,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
..mitem.span
|
||||||
|
};
|
||||||
|
|
||||||
if let SyntaxExtension::CustomDerive(ref ext) = *ext {
|
if let SyntaxExtension::CustomDerive(ref ext) = *ext {
|
||||||
return ext.expand(cx, mitem.span, &mitem, item);
|
return ext.expand(cx, span, &mitem, item);
|
||||||
} else {
|
} else {
|
||||||
unreachable!()
|
unreachable!()
|
||||||
}
|
}
|
||||||
@ -285,8 +298,8 @@ pub fn expand_derive(cx: &mut ExtCtxt,
|
|||||||
expn_id: cx.codemap().record_expansion(codemap::ExpnInfo {
|
expn_id: cx.codemap().record_expansion(codemap::ExpnInfo {
|
||||||
call_site: titem.span,
|
call_site: titem.span,
|
||||||
callee: codemap::NameAndSpan {
|
callee: codemap::NameAndSpan {
|
||||||
format: codemap::MacroAttribute(Symbol::intern(&format!("derive({})", tname))),
|
format: codemap::MacroAttribute(name),
|
||||||
span: Some(titem.span),
|
span: None,
|
||||||
allow_internal_unstable: true,
|
allow_internal_unstable: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user