Skip to content

Commit 9047b20

Browse files
committed
Move span into StructField
+ some cleanup in rustdoc
1 parent 8b026a6 commit 9047b20

File tree

18 files changed

+79
-98
lines changed

18 files changed

+79
-98
lines changed

src/librustc/front/map/collector.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ impl<'ast> Visitor<'ast> for NodeCollector<'ast> {
150150
for field in v.node.data.fields() {
151151
self.create_def_with_parent(
152152
Some(variant_def_index),
153-
field.node.id,
154-
DefPathData::Field(field.node.name));
153+
field.id,
154+
DefPathData::Field(field.name));
155155
}
156156
}
157157
}
@@ -166,7 +166,7 @@ impl<'ast> Visitor<'ast> for NodeCollector<'ast> {
166166
}
167167

168168
for field in struct_def.fields() {
169-
self.create_def(field.node.id, DefPathData::Field(field.node.name));
169+
self.create_def(field.id, DefPathData::Field(field.name));
170170
}
171171
}
172172
ItemTrait(_, _, ref bounds, _) => {

src/librustc/lint/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ impl<'a, 'tcx, 'v> hir_visit::Visitor<'v> for LateContext<'a, 'tcx> {
811811
}
812812

813813
fn visit_struct_field(&mut self, s: &hir::StructField) {
814-
self.with_lint_attrs(&s.node.attrs, |cx| {
814+
self.with_lint_attrs(&s.attrs, |cx| {
815815
run_lints!(cx, check_struct_field, late_passes, s);
816816
hir_visit::walk_struct_field(cx, s);
817817
})

src/librustc/middle/dead.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,9 @@ impl<'a, 'tcx, 'v> Visitor<'v> for MarkSymbolVisitor<'a, 'tcx> {
221221
let has_extern_repr = self.struct_has_extern_repr;
222222
let inherited_pub_visibility = self.inherited_pub_visibility;
223223
let live_fields = def.fields().iter().filter(|f| {
224-
has_extern_repr || inherited_pub_visibility || f.node.vis == hir::Public
224+
has_extern_repr || inherited_pub_visibility || f.vis == hir::Public
225225
});
226-
self.live_symbols.extend(live_fields.map(|f| f.node.id));
226+
self.live_symbols.extend(live_fields.map(|f| f.id));
227227

228228
intravisit::walk_struct_def(self, def);
229229
}
@@ -428,16 +428,16 @@ impl<'a, 'tcx> DeadVisitor<'a, 'tcx> {
428428
should_warn && !self.symbol_is_live(item.id, ctor_id)
429429
}
430430

431-
fn should_warn_about_field(&mut self, node: &hir::StructField_) -> bool {
432-
let field_type = self.tcx.node_id_to_type(node.id);
431+
fn should_warn_about_field(&mut self, field: &hir::StructField) -> bool {
432+
let field_type = self.tcx.node_id_to_type(field.id);
433433
let is_marker_field = match field_type.ty_to_def_id() {
434434
Some(def_id) => self.tcx.lang_items.items().iter().any(|item| *item == Some(def_id)),
435435
_ => false
436436
};
437-
!node.is_positional()
438-
&& !self.symbol_is_live(node.id, None)
437+
!field.is_positional()
438+
&& !self.symbol_is_live(field.id, None)
439439
&& !is_marker_field
440-
&& !has_allow_dead_code_or_lang_attr(&node.attrs)
440+
&& !has_allow_dead_code_or_lang_attr(&field.attrs)
441441
}
442442

443443
fn should_warn_about_variant(&mut self, variant: &hir::Variant_) -> bool {
@@ -543,9 +543,9 @@ impl<'a, 'tcx, 'v> Visitor<'v> for DeadVisitor<'a, 'tcx> {
543543
}
544544

545545
fn visit_struct_field(&mut self, field: &hir::StructField) {
546-
if self.should_warn_about_field(&field.node) {
547-
self.warn_dead_code(field.node.id, field.span,
548-
field.node.name, "struct field");
546+
if self.should_warn_about_field(&field) {
547+
self.warn_dead_code(field.id, field.span,
548+
field.name, "struct field");
549549
}
550550

551551
intravisit::walk_struct_field(self, field);

src/librustc/middle/stability.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for Annotator<'a, 'tcx> {
259259
}
260260

261261
fn visit_struct_field(&mut self, s: &StructField) {
262-
self.annotate(s.node.id, &s.node.attrs, s.span, AnnotationKind::Required, |v| {
262+
self.annotate(s.id, &s.attrs, s.span, AnnotationKind::Required, |v| {
263263
intravisit::walk_struct_field(v, s);
264264
});
265265
}

src/librustc_front/fold.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -700,16 +700,13 @@ pub fn noop_fold_poly_trait_ref<T: Folder>(p: PolyTraitRef, fld: &mut T) -> Poly
700700
}
701701

702702
pub fn noop_fold_struct_field<T: Folder>(f: StructField, fld: &mut T) -> StructField {
703-
let StructField {node: StructField_ {id, name, vis, ty, attrs}, span} = f;
704-
Spanned {
705-
node: StructField_ {
706-
id: fld.new_id(id),
707-
name: name,
708-
vis: vis,
709-
ty: fld.fold_ty(ty),
710-
attrs: fold_attrs(attrs, fld),
711-
},
712-
span: fld.new_span(span),
703+
StructField {
704+
span: fld.new_span(f.span),
705+
id: fld.new_id(f.id),
706+
name: f.name,
707+
vis: f.vis,
708+
ty: fld.fold_ty(f.ty),
709+
attrs: fold_attrs(f.attrs, fld),
713710
}
714711
}
715712

src/librustc_front/hir.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,17 +1241,16 @@ impl Visibility {
12411241
}
12421242

12431243
#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
1244-
pub struct StructField_ {
1244+
pub struct StructField {
1245+
pub span: Span,
12451246
pub name: Name,
12461247
pub vis: Visibility,
12471248
pub id: NodeId,
12481249
pub ty: P<Ty>,
12491250
pub attrs: HirVec<Attribute>,
12501251
}
12511252

1252-
pub type StructField = Spanned<StructField_>;
1253-
1254-
impl StructField_ {
1253+
impl StructField {
12551254
// Still necessary in couple of places
12561255
pub fn is_positional(&self) -> bool {
12571256
let first = self.name.as_str().as_bytes()[0];

src/librustc_front/intravisit.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -669,9 +669,9 @@ pub fn walk_struct_def<'v, V: Visitor<'v>>(visitor: &mut V, struct_definition: &
669669
}
670670

671671
pub fn walk_struct_field<'v, V: Visitor<'v>>(visitor: &mut V, struct_field: &'v StructField) {
672-
visitor.visit_name(struct_field.span, struct_field.node.name);
673-
visitor.visit_ty(&struct_field.node.ty);
674-
walk_list!(visitor, visit_attribute, &struct_field.node.attrs);
672+
visitor.visit_name(struct_field.span, struct_field.name);
673+
visitor.visit_ty(&struct_field.ty);
674+
walk_list!(visitor, visit_attribute, &struct_field.attrs);
675675
}
676676

677677
pub fn walk_block<'v, V: Visitor<'v>>(visitor: &mut V, block: &'v Block) {

src/librustc_front/lowering.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -612,16 +612,14 @@ pub fn lower_poly_trait_ref(lctx: &LoweringContext, p: &PolyTraitRef) -> hir::Po
612612
pub fn lower_struct_field(lctx: &LoweringContext,
613613
(index, f): (usize, &StructField))
614614
-> hir::StructField {
615-
Spanned {
616-
node: hir::StructField_ {
617-
id: f.node.id,
618-
name: f.node.ident().map(|ident| ident.name)
619-
.unwrap_or(token::intern(&index.to_string())),
620-
vis: lower_visibility(lctx, f.node.kind.visibility()),
621-
ty: lower_ty(lctx, &f.node.ty),
622-
attrs: lower_attrs(lctx, &f.node.attrs),
623-
},
615+
hir::StructField {
624616
span: f.span,
617+
id: f.node.id,
618+
name: f.node.ident().map(|ident| ident.name)
619+
.unwrap_or(token::intern(&index.to_string())),
620+
vis: lower_visibility(lctx, f.node.kind.visibility()),
621+
ty: lower_ty(lctx, &f.node.ty),
622+
attrs: lower_attrs(lctx, &f.node.attrs),
625623
}
626624
}
627625

src/librustc_front/print/pprust.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -915,9 +915,9 @@ impl<'a> State<'a> {
915915
if struct_def.is_tuple() {
916916
try!(self.popen());
917917
try!(self.commasep(Inconsistent, struct_def.fields(), |s, field| {
918-
try!(s.print_visibility(field.node.vis));
918+
try!(s.print_visibility(field.vis));
919919
try!(s.maybe_print_comment(field.span.lo));
920-
s.print_type(&field.node.ty)
920+
s.print_type(&field.ty)
921921
}));
922922
try!(self.pclose());
923923
}
@@ -936,11 +936,11 @@ impl<'a> State<'a> {
936936
for field in struct_def.fields() {
937937
try!(self.hardbreak_if_not_bol());
938938
try!(self.maybe_print_comment(field.span.lo));
939-
try!(self.print_outer_attributes(&field.node.attrs));
940-
try!(self.print_visibility(field.node.vis));
941-
try!(self.print_name(field.node.name));
939+
try!(self.print_outer_attributes(&field.attrs));
940+
try!(self.print_visibility(field.vis));
941+
try!(self.print_name(field.name));
942942
try!(self.word_nbsp(":"));
943-
try!(self.print_type(&field.node.ty));
943+
try!(self.print_type(&field.ty));
944944
try!(word(&mut self.s, ","));
945945
}
946946

src/librustc_front/util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ impl<'a, 'v, O: ast_util::IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O>
271271
}
272272

273273
fn visit_struct_field(&mut self, struct_field: &StructField) {
274-
self.operation.visit_id(struct_field.node.id);
274+
self.operation.visit_id(struct_field.id);
275275
intravisit::walk_struct_field(self, struct_field)
276276
}
277277

src/librustc_lint/bad_style.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ impl LateLintPass for NonSnakeCase {
283283
fn check_struct_def(&mut self, cx: &LateContext, s: &hir::VariantData,
284284
_: ast::Name, _: &hir::Generics, _: ast::NodeId) {
285285
for sf in s.fields() {
286-
self.check_snake_case(cx, "structure field", &sf.node.name.as_str(), Some(sf.span));
286+
self.check_snake_case(cx, "structure field", &sf.name.as_str(), Some(sf.span));
287287
}
288288
}
289289
}

src/librustc_lint/builtin.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ impl LateLintPass for BoxPointers {
126126
hir::ItemStruct(ref struct_def, _) => {
127127
for struct_field in struct_def.fields() {
128128
self.check_heap_type(cx, struct_field.span,
129-
cx.tcx.node_id_to_type(struct_field.node.id));
129+
cx.tcx.node_id_to_type(struct_field.id));
130130
}
131131
}
132132
_ => ()
@@ -428,12 +428,12 @@ impl LateLintPass for MissingDoc {
428428
}
429429

430430
fn check_struct_field(&mut self, cx: &LateContext, sf: &hir::StructField) {
431-
if !sf.node.is_positional() {
432-
if sf.node.vis == hir::Public || self.in_variant {
431+
if !sf.is_positional() {
432+
if sf.vis == hir::Public || self.in_variant {
433433
let cur_struct_def = *self.struct_def_stack.last()
434434
.expect("empty struct_def_stack");
435435
self.check_missing_docs_attrs(cx, Some(cur_struct_def),
436-
&sf.node.attrs, sf.span,
436+
&sf.attrs, sf.span,
437437
"a struct field")
438438
}
439439
}

src/librustc_metadata/encoder.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,9 +1751,9 @@ fn encode_struct_field_attrs(ecx: &EncodeContext,
17511751
impl<'a, 'b, 'c, 'tcx, 'v> Visitor<'v> for StructFieldVisitor<'a, 'b, 'c, 'tcx> {
17521752
fn visit_struct_field(&mut self, field: &hir::StructField) {
17531753
self.rbml_w.start_tag(tag_struct_field);
1754-
let def_id = self.ecx.tcx.map.local_def_id(field.node.id);
1754+
let def_id = self.ecx.tcx.map.local_def_id(field.id);
17551755
encode_def_id(self.rbml_w, def_id);
1756-
encode_attributes(self.rbml_w, &field.node.attrs);
1756+
encode_attributes(self.rbml_w, &field.attrs);
17571757
self.rbml_w.end_tag();
17581758
}
17591759
}

src/librustc_privacy/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for ParentVisitor<'a, 'tcx> {
147147
// While we have the id of the struct definition, go ahead and parent
148148
// all the fields.
149149
for field in s.fields() {
150-
self.parents.insert(field.node.id, self.curparent);
150+
self.parents.insert(field.id, self.curparent);
151151
}
152152
intravisit::walk_struct_def(self, s)
153153
}
@@ -262,7 +262,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for EmbargoVisitor<'a, 'tcx> {
262262
for variant in &def.variants {
263263
let variant_level = self.update(variant.node.data.id(), item_level);
264264
for field in variant.node.data.fields() {
265-
self.update(field.node.id, variant_level);
265+
self.update(field.id, variant_level);
266266
}
267267
}
268268
}
@@ -288,8 +288,8 @@ impl<'a, 'tcx, 'v> Visitor<'v> for EmbargoVisitor<'a, 'tcx> {
288288
self.update(def.id(), item_level);
289289
}
290290
for field in def.fields() {
291-
if field.node.vis == hir::Public {
292-
self.update(field.node.id, item_level);
291+
if field.vis == hir::Public {
292+
self.update(field.id, item_level);
293293
}
294294
}
295295
}
@@ -347,7 +347,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for EmbargoVisitor<'a, 'tcx> {
347347
if item_level.is_some() {
348348
self.reach().visit_generics(generics);
349349
for field in struct_def.fields() {
350-
if self.get(field.node.id).is_some() {
350+
if self.get(field.id).is_some() {
351351
self.reach().visit_struct_field(field);
352352
}
353353
}
@@ -1514,7 +1514,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for ObsoleteVisiblePrivateTypesVisitor<'a, 'tcx>
15141514
}
15151515

15161516
fn visit_struct_field(&mut self, s: &hir::StructField) {
1517-
if s.node.vis == hir::Public || self.in_variant {
1517+
if s.vis == hir::Public || self.in_variant {
15181518
intravisit::walk_struct_field(self, s);
15191519
}
15201520
}
@@ -1725,7 +1725,7 @@ impl<'a, 'tcx, 'v> Visitor<'v> for PrivateItemsInPublicInterfacesVisitor<'a, 'tc
17251725
if item.vis == hir::Public {
17261726
check.visit_generics(generics);
17271727
for field in struct_def.fields() {
1728-
if field.node.vis == hir::Public {
1728+
if field.vis == hir::Public {
17291729
check.visit_struct_field(field);
17301730
}
17311731
}

src/librustc_resolve/build_reduced_graph.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
382382
// Record the def ID and fields of this struct.
383383
let field_names = struct_def.fields()
384384
.iter()
385-
.map(|f| f.node.name)
385+
.map(|f| f.name)
386386
.collect();
387387
let item_def_id = self.ast_map.local_def_id(item.id);
388388
self.structs.insert(item_def_id, field_names);

src/librustc_typeck/check/wfcheck.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ fn struct_variant<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
567567
let fields =
568568
struct_def.fields().iter()
569569
.map(|field| {
570-
let field_ty = fcx.tcx().node_id_to_type(field.node.id);
570+
let field_ty = fcx.tcx().node_id_to_type(field.id);
571571
let field_ty = fcx.instantiate_type_scheme(field.span,
572572
&fcx.inh
573573
.infcx

src/librustc_typeck/collect.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -574,20 +574,20 @@ fn convert_method<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>,
574574
fn convert_field<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>,
575575
struct_generics: &ty::Generics<'tcx>,
576576
struct_predicates: &ty::GenericPredicates<'tcx>,
577-
v: &hir::StructField,
577+
field: &hir::StructField,
578578
ty_f: ty::FieldDefMaster<'tcx>)
579579
{
580-
let tt = ccx.icx(struct_predicates).to_ty(&ExplicitRscope, &v.node.ty);
580+
let tt = ccx.icx(struct_predicates).to_ty(&ExplicitRscope, &field.ty);
581581
ty_f.fulfill_ty(tt);
582-
write_ty_to_tcx(ccx.tcx, v.node.id, tt);
582+
write_ty_to_tcx(ccx.tcx, field.id, tt);
583583

584584
/* add the field to the tcache */
585-
ccx.tcx.register_item_type(ccx.tcx.map.local_def_id(v.node.id),
585+
ccx.tcx.register_item_type(ccx.tcx.map.local_def_id(field.id),
586586
ty::TypeScheme {
587587
generics: struct_generics.clone(),
588588
ty: tt
589589
});
590-
ccx.tcx.predicates.borrow_mut().insert(ccx.tcx.map.local_def_id(v.node.id),
590+
ccx.tcx.predicates.borrow_mut().insert(ccx.tcx.map.local_def_id(field.id),
591591
struct_predicates.clone());
592592
}
593593

@@ -977,19 +977,19 @@ fn convert_struct_variant<'tcx>(tcx: &ty::ctxt<'tcx>,
977977
def: &hir::VariantData) -> ty::VariantDefData<'tcx, 'tcx> {
978978
let mut seen_fields: FnvHashMap<ast::Name, Span> = FnvHashMap();
979979
let fields = def.fields().iter().map(|f| {
980-
let fid = tcx.map.local_def_id(f.node.id);
981-
let dup_span = seen_fields.get(&f.node.name).cloned();
980+
let fid = tcx.map.local_def_id(f.id);
981+
let dup_span = seen_fields.get(&f.name).cloned();
982982
if let Some(prev_span) = dup_span {
983983
let mut err = struct_span_err!(tcx.sess, f.span, E0124,
984984
"field `{}` is already declared",
985-
f.node.name);
985+
f.name);
986986
span_note!(&mut err, prev_span, "previously declared here");
987987
err.emit();
988988
} else {
989-
seen_fields.insert(f.node.name, f.span);
989+
seen_fields.insert(f.name, f.span);
990990
}
991991

992-
ty::FieldDefData::new(fid, f.node.name, f.node.vis)
992+
ty::FieldDefData::new(fid, f.name, f.vis)
993993
}).collect();
994994
ty::VariantDefData {
995995
did: did,

0 commit comments

Comments
 (0)