Allow #[rustc_builtin_macro = "name"].
This makes it possible to have both std::panic and core::panic as a builtin macro, by using different builtin macro names for each. Also removes SyntaxExtension::is_derive_copy, as the macro name (e.g. sym::Copy) is now tracked and provides that information directly.
This commit is contained in:
parent
1f9dc9a182
commit
d651fa78ce
5 changed files with 11 additions and 15 deletions
|
@ -1443,7 +1443,7 @@ impl<'a> Resolver<'a> {
|
|||
}
|
||||
|
||||
fn is_builtin_macro(&mut self, res: Res) -> bool {
|
||||
self.get_macro(res).map_or(false, |ext| ext.is_builtin)
|
||||
self.get_macro(res).map_or(false, |ext| ext.builtin_name.is_some())
|
||||
}
|
||||
|
||||
fn macro_def(&self, mut ctxt: SyntaxContext) -> DefId {
|
||||
|
@ -2010,7 +2010,7 @@ impl<'a> Resolver<'a> {
|
|||
// The macro is a proc macro derive
|
||||
if let Some(def_id) = module.expansion.expn_data().macro_def_id {
|
||||
let ext = self.get_macro_by_def_id(def_id);
|
||||
if !ext.is_builtin
|
||||
if ext.builtin_name.is_none()
|
||||
&& ext.macro_kind() == MacroKind::Derive
|
||||
&& parent.expansion.outer_expn_is_descendant_of(span.ctxt())
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue