diff --git a/compiler/rustc_resolve/src/build_reduced_graph.rs b/compiler/rustc_resolve/src/build_reduced_graph.rs index 420fcfb9e6cb..92124f8ead24 100644 --- a/compiler/rustc_resolve/src/build_reduced_graph.rs +++ b/compiler/rustc_resolve/src/build_reduced_graph.rs @@ -1505,14 +1505,10 @@ fn visit_attribute(&mut self, attr: &'a ast::Attribute) { visit::walk_attribute(self, attr); } - fn visit_field_def(&mut self, sf: &'a ast::FieldDef) { - if sf.is_placeholder { - self.visit_invoc(sf.id); - } else { - let vis = self.resolve_visibility(&sf.vis); - self.r.feed_visibility(self.r.feed(sf.id), vis); - visit::walk_field_def(self, sf); - } + 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); + visit::walk_field_def(self, sf); } // Constructs the reduced graph for one variant. Variants exist in the diff --git a/compiler/rustc_resolve/src/def_collector.rs b/compiler/rustc_resolve/src/def_collector.rs index 4bcd974dc276..e8ece893afd4 100644 --- a/compiler/rustc_resolve/src/def_collector.rs +++ b/compiler/rustc_resolve/src/def_collector.rs @@ -97,10 +97,11 @@ fn collect_field(&mut self, field: &'a FieldDef, index: Option) { let old_index = self.r.placeholder_field_indices.insert(field.id, index(self)); assert!(old_index.is_none(), "placeholder field index is reset for a node ID"); self.visit_macro_invoc(field.id); + self.visit_invoc(field.id); } else { let name = field.ident.map_or_else(|| sym::integer(index(self)), |ident| ident.name); let def = self.create_def(field.id, Some(name), DefKind::Field, field.span); - self.with_parent(def, |this| visit::walk_field_def(this, field)); + self.with_parent(def, |this| this.brg_visit_field_def(field)); } }