Skip to content

Commit 8fe4290

Browse files
committed
Move span into StructField
1 parent 7f3744f commit 8fe4290

File tree

13 files changed

+50
-49
lines changed

13 files changed

+50
-49
lines changed

src/librustc/lint/context.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -978,7 +978,7 @@ impl<'a, 'v> ast_visit::Visitor<'v> for EarlyContext<'a> {
978978
}
979979

980980
fn visit_struct_field(&mut self, s: &ast::StructField) {
981-
self.with_lint_attrs(&s.node.attrs, |cx| {
981+
self.with_lint_attrs(&s.attrs, |cx| {
982982
run_lints!(cx, check_struct_field, early_passes, s);
983983
ast_visit::walk_struct_field(cx, s);
984984
})

src/librustc_front/lowering.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -621,11 +621,11 @@ pub fn lower_struct_field(lctx: &LoweringContext,
621621
-> hir::StructField {
622622
hir::StructField {
623623
span: f.span,
624-
id: f.node.id,
625-
name: f.node.ident.map(|ident| ident.name).unwrap_or(token::intern(&index.to_string())),
626-
vis: lower_visibility(lctx, f.node.vis),
627-
ty: lower_ty(lctx, &f.node.ty),
628-
attrs: lower_attrs(lctx, &f.node.attrs),
624+
id: f.id,
625+
name: f.ident.map(|ident| ident.name).unwrap_or(token::intern(&index.to_string())),
626+
vis: lower_visibility(lctx, &f.vis),
627+
ty: lower_ty(lctx, &f.ty),
628+
attrs: lower_attrs(lctx, &f.attrs),
629629
}
630630
}
631631

src/librustc_save_analysis/dump_visitor.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ where D: Dump
563563
// fields
564564
for field in def.fields() {
565565
self.process_struct_field_def(field, item.id);
566-
self.visit_ty(&field.node.ty);
566+
self.visit_ty(&field.ty);
567567
}
568568

569569
self.process_generic_params(ty_params, item.span, &qualname, item.id);
@@ -624,7 +624,7 @@ where D: Dump
624624

625625
for field in variant.node.data.fields() {
626626
self.process_struct_field_def(field, variant.node.data.id());
627-
self.visit_ty(&field.node.ty);
627+
self.visit_ty(&field.ty);
628628
}
629629
}
630630
self.process_generic_params(ty_params, item.span, &enum_data.qualname, enum_data.id);

src/librustc_save_analysis/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,13 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
246246

247247
pub fn get_field_data(&self, field: &ast::StructField,
248248
scope: NodeId) -> Option<VariableData> {
249-
if let Some(ident) = field.node.ident {
249+
if let Some(ident) = field.ident {
250250
let qualname = format!("::{}::{}", self.tcx.map.path_to_string(scope), ident);
251-
let typ = self.tcx.node_types().get(&field.node.id).unwrap().to_string();
251+
let typ = self.tcx.node_types().get(&field.id).unwrap().to_string();
252252
let sub_span = self.span_utils.sub_span_before_token(field.span, token::Colon);
253253
filter!(self.span_utils, sub_span, field.span, None);
254254
Some(VariableData {
255-
id: field.node.id,
255+
id: field.id,
256256
name: ident.to_string(),
257257
qualname: qualname,
258258
span: sub_span.unwrap(),

src/libsyntax/ast.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1876,16 +1876,15 @@ pub enum Visibility {
18761876
}
18771877

18781878
#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
1879-
pub struct StructField_ {
1879+
pub struct StructField {
1880+
pub span: Span,
18801881
pub ident: Option<Ident>,
18811882
pub vis: Visibility,
18821883
pub id: NodeId,
18831884
pub ty: P<Ty>,
18841885
pub attrs: Vec<Attribute>,
18851886
}
18861887

1887-
pub type StructField = Spanned<StructField_>;
1888-
18891888
/// Fields and Ids of enum variants and structs
18901889
///
18911890
/// For enum variants: `NodeId` represents both an Id of the variant itself (relevant for all

src/libsyntax/ast_util.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> {
263263
}
264264

265265
fn visit_struct_field(&mut self, struct_field: &StructField) {
266-
self.operation.visit_id(struct_field.node.id);
266+
self.operation.visit_id(struct_field.id);
267267
visit::walk_struct_field(self, struct_field)
268268
}
269269

src/libsyntax/config.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,12 @@ fn fold_struct<F>(cx: &mut Context<F>, vdata: ast::VariantData) -> ast::VariantD
180180
match vdata {
181181
ast::VariantData::Struct(fields, id) => {
182182
ast::VariantData::Struct(fields.into_iter().filter(|m| {
183-
(cx.in_cfg)(&m.node.attrs)
183+
(cx.in_cfg)(&m.attrs)
184184
}).collect(), id)
185185
}
186186
ast::VariantData::Tuple(fields, id) => {
187187
ast::VariantData::Tuple(fields.into_iter().filter(|m| {
188-
(cx.in_cfg)(&m.node.attrs)
188+
(cx.in_cfg)(&m.attrs)
189189
}).collect(), id)
190190
}
191191
ast::VariantData::Unit(id) => ast::VariantData::Unit(id)
@@ -434,7 +434,7 @@ impl<'v, 'a, 'b> visit::Visitor<'v> for StmtExprAttrFeatureVisitor<'a, 'b> {
434434
}
435435

436436
fn visit_struct_field(&mut self, s: &'v ast::StructField) {
437-
if node_survives_cfg(&s.node.attrs, self.config) {
437+
if node_survives_cfg(&s.attrs, self.config) {
438438
visit::walk_struct_field(self, s);
439439
}
440440
}

src/libsyntax/ext/build.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1007,13 +1007,14 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
10071007

10081008
fn variant(&self, span: Span, name: Ident, tys: Vec<P<ast::Ty>> ) -> ast::Variant {
10091009
let fields: Vec<_> = tys.into_iter().map(|ty| {
1010-
Spanned { span: ty.span, node: ast::StructField_ {
1010+
ast::StructField {
1011+
span: ty.span,
10111012
ty: ty,
10121013
ident: None,
10131014
vis: ast::Visibility::Inherited,
10141015
attrs: Vec::new(),
10151016
id: ast::DUMMY_NODE_ID,
1016-
}}
1017+
}
10171018
}).collect();
10181019

10191020
let vdata = if fields.is_empty() {

src/libsyntax/fold.rs

+7-9
Original file line numberDiff line numberDiff line change
@@ -847,15 +847,13 @@ pub fn noop_fold_poly_trait_ref<T: Folder>(p: PolyTraitRef, fld: &mut T) -> Poly
847847
}
848848

849849
pub fn noop_fold_struct_field<T: Folder>(f: StructField, fld: &mut T) -> StructField {
850-
Spanned {
851-
node: StructField_ {
852-
id: fld.new_id(f.node.id),
853-
ident: f.node.ident.map(|ident| fld.fold_ident(ident)),
854-
vis: f.node.vis,
855-
ty: fld.fold_ty(f.node.ty),
856-
attrs: fold_attrs(f.node.attrs, fld),
857-
},
858-
span: fld.new_span(f.span)
850+
StructField {
851+
span: fld.new_span(f.span),
852+
id: fld.new_id(f.id),
853+
ident: f.ident.map(|ident| fld.fold_ident(ident)),
854+
vis: f.vis,
855+
ty: fld.fold_ty(f.ty),
856+
attrs: fold_attrs(f.attrs, fld),
859857
}
860858
}
861859

src/libsyntax/parse/parser.rs

+10-7
Original file line numberDiff line numberDiff line change
@@ -3845,13 +3845,14 @@ impl<'a> Parser<'a> {
38453845
let name = self.parse_ident()?;
38463846
self.expect(&token::Colon)?;
38473847
let ty = self.parse_ty_sum()?;
3848-
Ok(spanned(lo, self.last_span.hi, ast::StructField_ {
3848+
Ok(StructField {
3849+
span: mk_sp(lo, self.last_span.hi),
38493850
ident: Some(name),
38503851
vis: pr,
38513852
id: ast::DUMMY_NODE_ID,
38523853
ty: ty,
38533854
attrs: attrs,
3854-
}))
3855+
})
38553856
}
38563857

38573858
/// Emit an expected item after attributes error.
@@ -5245,14 +5246,16 @@ impl<'a> Parser<'a> {
52455246
|p| {
52465247
let attrs = p.parse_outer_attributes()?;
52475248
let lo = p.span.lo;
5248-
let struct_field_ = ast::StructField_ {
5249-
vis: p.parse_visibility()?,
5249+
let vis = p.parse_visibility()?;
5250+
let ty = p.parse_ty_sum()?;
5251+
Ok(StructField {
5252+
span: mk_sp(lo, p.span.hi),
5253+
vis: vis,
52505254
ident: None,
52515255
id: ast::DUMMY_NODE_ID,
5252-
ty: p.parse_ty_sum()?,
5256+
ty: ty,
52535257
attrs: attrs,
5254-
};
5255-
Ok(spanned(lo, p.span.hi, struct_field_))
5258+
})
52565259
})?;
52575260

52585261
Ok(fields)

src/libsyntax/print/pprust.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -1407,9 +1407,9 @@ impl<'a> State<'a> {
14071407
self.commasep(
14081408
Inconsistent, struct_def.fields(),
14091409
|s, field| {
1410-
s.print_visibility(field.node.vis)?;
1410+
s.print_visibility(&field.vis)?;
14111411
s.maybe_print_comment(field.span.lo)?;
1412-
s.print_type(&field.node.ty)
1412+
s.print_type(&field.ty)
14131413
}
14141414
)?;
14151415
self.pclose()?;
@@ -1429,11 +1429,11 @@ impl<'a> State<'a> {
14291429
for field in struct_def.fields() {
14301430
self.hardbreak_if_not_bol()?;
14311431
self.maybe_print_comment(field.span.lo)?;
1432-
self.print_outer_attributes(&field.node.attrs)?;
1433-
self.print_visibility(field.node.vis)?;
1434-
self.print_ident(field.node.ident.unwrap())?;
1432+
self.print_outer_attributes(&field.attrs)?;
1433+
self.print_visibility(&field.vis)?;
1434+
self.print_ident(field.ident.unwrap())?;
14351435
self.word_nbsp(":")?;
1436-
self.print_type(&field.node.ty)?;
1436+
self.print_type(&field.ty)?;
14371437
word(&mut self.s, ",")?;
14381438
}
14391439

src/libsyntax/visit.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -619,9 +619,9 @@ pub fn walk_struct_def<'v, V: Visitor<'v>>(visitor: &mut V,
619619

620620
pub fn walk_struct_field<'v, V: Visitor<'v>>(visitor: &mut V,
621621
struct_field: &'v StructField) {
622-
walk_opt_ident(visitor, struct_field.span, struct_field.node.ident);
623-
visitor.visit_ty(&struct_field.node.ty);
624-
walk_list!(visitor, visit_attribute, &struct_field.node.attrs);
622+
walk_opt_ident(visitor, struct_field.span, struct_field.ident);
623+
visitor.visit_ty(&struct_field.ty);
624+
walk_list!(visitor, visit_attribute, &struct_field.attrs);
625625
}
626626

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

src/libsyntax_ext/deriving/generic/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ impl<'a> TraitDef<'a> {
653653
type_ident: Ident,
654654
generics: &Generics) -> P<ast::Item> {
655655
let field_tys: Vec<P<ast::Ty>> = struct_def.fields().iter()
656-
.map(|field| field.node.ty.clone())
656+
.map(|field| field.ty.clone())
657657
.collect();
658658

659659
let methods = self.methods.iter().map(|method_def| {
@@ -701,7 +701,7 @@ impl<'a> TraitDef<'a> {
701701

702702
for variant in &enum_def.variants {
703703
field_tys.extend(variant.node.data.fields().iter()
704-
.map(|field| field.node.ty.clone()));
704+
.map(|field| field.ty.clone()));
705705
}
706706

707707
let methods = self.methods.iter().map(|method_def| {
@@ -1435,7 +1435,7 @@ impl<'a> TraitDef<'a> {
14351435
let mut just_spans = Vec::new();
14361436
for field in struct_def.fields(){
14371437
let sp = self.set_expn_info(cx, field.span);
1438-
match field.node.ident {
1438+
match field.ident {
14391439
Some(ident) => named_idents.push((ident, sp)),
14401440
_ => just_spans.push(sp),
14411441
}
@@ -1481,7 +1481,7 @@ impl<'a> TraitDef<'a> {
14811481
paths.push(codemap::Spanned{span: sp, node: ident});
14821482
let val = cx.expr_deref(sp, cx.expr_path(cx.path_ident(sp,ident)));
14831483
let val = cx.expr(sp, ast::ExprKind::Paren(val));
1484-
ident_exprs.push((sp, struct_field.node.ident, val, &struct_field.node.attrs[..]));
1484+
ident_exprs.push((sp, struct_field.ident, val, &struct_field.attrs[..]));
14851485
}
14861486

14871487
let subpats = self.create_subpatterns(cx, paths, mutbl);

0 commit comments

Comments
 (0)