mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
Handle attributes entirely in the def collector
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
self as ast, AssocItem, AssocItemKind, Block, ConstItem, Delegation, Fn, ForeignItem,
|
||||
ForeignItemKind, Inline, Item, ItemKind, NodeId, StaticItem, StmtKind, TraitAlias, TyAlias,
|
||||
};
|
||||
use rustc_attr_parsing as attr;
|
||||
use rustc_attr_parsing::AttributeParser;
|
||||
use rustc_expand::base::ResolverExpand;
|
||||
use rustc_hir::Attribute;
|
||||
@@ -1470,15 +1469,6 @@ pub(crate) fn visit_assoc_item_mac_call(
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn brg_visit_attribute(&mut self, attr: &'a ast::Attribute) {
|
||||
if !attr.is_doc_comment() && attr::is_builtin_attr(attr) {
|
||||
self.r
|
||||
.builtin_attrs
|
||||
.push((attr.get_normal_item().path.segments[0].ident, self.parent_scope));
|
||||
}
|
||||
visit::walk_attribute(self, attr);
|
||||
}
|
||||
|
||||
pub(crate) fn brg_visit_field_def(&mut self, sf: &'a ast::FieldDef) {
|
||||
let vis = self.resolve_visibility(&sf.vis);
|
||||
self.r.feed_visibility(self.r.feed(sf.id), vis);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
use rustc_ast::visit::FnKind;
|
||||
use rustc_ast::*;
|
||||
use rustc_attr_parsing as attr;
|
||||
use rustc_attr_parsing::{AttributeParser, Early, OmitDoc, ShouldEmit};
|
||||
use rustc_expand::expand::AstFragment;
|
||||
use rustc_hir as hir;
|
||||
@@ -593,7 +594,12 @@ fn visit_crate(&mut self, krate: &'a Crate) {
|
||||
|
||||
fn visit_attribute(&mut self, attr: &'a Attribute) {
|
||||
let orig_in_attr = mem::replace(&mut self.invocation_parent.in_attr, true);
|
||||
self.brg_visit_attribute(attr);
|
||||
if !attr.is_doc_comment() && attr::is_builtin_attr(attr) {
|
||||
self.r
|
||||
.builtin_attrs
|
||||
.push((attr.get_normal_item().path.segments[0].ident, self.parent_scope));
|
||||
}
|
||||
visit::walk_attribute(self, attr);
|
||||
self.invocation_parent.in_attr = orig_in_attr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user