Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit b25d3ba

Browse files
committed
ast/hir: Rename field-related structures
StructField -> FieldDef ("field definition") Field -> ExprField ("expression field", not "field expression") FieldPat -> PatField ("pattern field", not "field pattern") Also rename visiting and other methods working on them.
1 parent 195ad48 commit b25d3ba

File tree

57 files changed

+313
-301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+313
-301
lines changed

compiler/rustc_ast/src/ast.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ impl Pat {
647647
/// are treated the same as `x: x, y: ref y, z: ref mut z`,
648648
/// except when `is_shorthand` is true.
649649
#[derive(Clone, Encodable, Decodable, Debug)]
650-
pub struct FieldPat {
650+
pub struct PatField {
651651
/// The identifier for the field.
652652
pub ident: Ident,
653653
/// The pattern the field is destructured to.
@@ -692,7 +692,7 @@ pub enum PatKind {
692692

693693
/// A struct or struct variant pattern (e.g., `Variant {x, y, ..}`).
694694
/// The `bool` is `true` in the presence of a `..`.
695-
Struct(Path, Vec<FieldPat>, /* recovered */ bool),
695+
Struct(Path, Vec<PatField>, /* recovered */ bool),
696696

697697
/// A tuple struct/variant pattern (`Variant(x, y, .., z)`).
698698
TupleStruct(Path, Vec<P<Pat>>),
@@ -1027,9 +1027,9 @@ pub struct Arm {
10271027
pub is_placeholder: bool,
10281028
}
10291029

1030-
/// Access of a named (e.g., `obj.foo`) or unnamed (e.g., `obj.0`) struct field.
1030+
/// A single field in a struct expression, e.g. `x: value` and `y` in `Foo { x: value, y }`.
10311031
#[derive(Clone, Encodable, Decodable, Debug)]
1032-
pub struct Field {
1032+
pub struct ExprField {
10331033
pub attrs: AttrVec,
10341034
pub id: NodeId,
10351035
pub span: Span,
@@ -1369,7 +1369,7 @@ pub enum ExprKind {
13691369
/// A struct literal expression.
13701370
///
13711371
/// E.g., `Foo {x: 1, y: 2}`, or `Foo {x: 1, .. rest}`.
1372-
Struct(Path, Vec<Field>, StructRest),
1372+
Struct(Path, Vec<ExprField>, StructRest),
13731373

13741374
/// An array literal constructed from one repeated element.
13751375
///
@@ -2519,11 +2519,11 @@ impl VisibilityKind {
25192519
}
25202520
}
25212521

2522-
/// Field of a struct.
2522+
/// Field definition in a struct, variant or union.
25232523
///
25242524
/// E.g., `bar: usize` as in `struct Foo { bar: usize }`.
25252525
#[derive(Clone, Encodable, Decodable, Debug)]
2526-
pub struct StructField {
2526+
pub struct FieldDef {
25272527
pub attrs: Vec<Attribute>,
25282528
pub id: NodeId,
25292529
pub span: Span,
@@ -2540,11 +2540,11 @@ pub enum VariantData {
25402540
/// Struct variant.
25412541
///
25422542
/// E.g., `Bar { .. }` as in `enum Foo { Bar { .. } }`.
2543-
Struct(Vec<StructField>, bool),
2543+
Struct(Vec<FieldDef>, bool),
25442544
/// Tuple variant.
25452545
///
25462546
/// E.g., `Bar(..)` as in `enum Foo { Bar(..) }`.
2547-
Tuple(Vec<StructField>, NodeId),
2547+
Tuple(Vec<FieldDef>, NodeId),
25482548
/// Unit variant.
25492549
///
25502550
/// E.g., `Bar = ..` as in `enum Foo { Bar = .. }`.
@@ -2553,7 +2553,7 @@ pub enum VariantData {
25532553

25542554
impl VariantData {
25552555
/// Return the fields of this variant.
2556-
pub fn fields(&self) -> &[StructField] {
2556+
pub fn fields(&self) -> &[FieldDef] {
25572557
match *self {
25582558
VariantData::Struct(ref fields, ..) | VariantData::Tuple(ref fields, _) => fields,
25592559
_ => &[],

compiler/rustc_ast/src/ast_like.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::ptr::P;
22
use super::tokenstream::LazyTokenStream;
3-
use super::{Arm, Field, FieldPat, GenericParam, Param, StructField, Variant};
3+
use super::{Arm, ExprField, FieldDef, GenericParam, Param, PatField, Variant};
44
use super::{AssocItem, Expr, ForeignItem, Item, Local};
55
use super::{AttrItem, AttrKind, Block, Pat, Path, Ty, Visibility};
66
use super::{AttrVec, Attribute, Stmt, StmtKind};
@@ -187,8 +187,7 @@ derive_has_tokens_and_attrs! {
187187
// These ast nodes only support inert attributes, so they don't
188188
// store tokens (since nothing can observe them)
189189
derive_has_attrs_no_tokens! {
190-
StructField, Arm,
191-
Field, FieldPat, Variant, Param, GenericParam
190+
FieldDef, Arm, ExprField, PatField, Variant, Param, GenericParam
192191
}
193192

194193
// These AST nodes don't support attributes, but can

compiler/rustc_ast/src/mut_visit.rs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ pub trait MutVisitor: Sized {
102102
noop_visit_fn_header(header, self);
103103
}
104104

105-
fn flat_map_struct_field(&mut self, sf: StructField) -> SmallVec<[StructField; 1]> {
106-
noop_flat_map_struct_field(sf, self)
105+
fn flat_map_field_def(&mut self, fd: FieldDef) -> SmallVec<[FieldDef; 1]> {
106+
noop_flat_map_field_def(fd, self)
107107
}
108108

109109
fn visit_item_kind(&mut self, i: &mut ItemKind) {
@@ -254,8 +254,8 @@ pub trait MutVisitor: Sized {
254254
noop_visit_mt(mt, self);
255255
}
256256

257-
fn flat_map_field(&mut self, f: Field) -> SmallVec<[Field; 1]> {
258-
noop_flat_map_field(f, self)
257+
fn flat_map_expr_field(&mut self, f: ExprField) -> SmallVec<[ExprField; 1]> {
258+
noop_flat_map_expr_field(f, self)
259259
}
260260

261261
fn visit_where_clause(&mut self, where_clause: &mut WhereClause) {
@@ -278,8 +278,8 @@ pub trait MutVisitor: Sized {
278278
// Do nothing.
279279
}
280280

281-
fn flat_map_field_pattern(&mut self, fp: FieldPat) -> SmallVec<[FieldPat; 1]> {
282-
noop_flat_map_field_pattern(fp, self)
281+
fn flat_map_pat_field(&mut self, fp: PatField) -> SmallVec<[PatField; 1]> {
282+
noop_flat_map_pat_field(fp, self)
283283
}
284284
}
285285

@@ -385,11 +385,11 @@ pub fn visit_delim_span<T: MutVisitor>(dspan: &mut DelimSpan, vis: &mut T) {
385385
vis.visit_span(&mut dspan.close);
386386
}
387387

388-
pub fn noop_flat_map_field_pattern<T: MutVisitor>(
389-
mut fp: FieldPat,
388+
pub fn noop_flat_map_pat_field<T: MutVisitor>(
389+
mut fp: PatField,
390390
vis: &mut T,
391-
) -> SmallVec<[FieldPat; 1]> {
392-
let FieldPat { attrs, id, ident, is_placeholder: _, is_shorthand: _, pat, span } = &mut fp;
391+
) -> SmallVec<[PatField; 1]> {
392+
let PatField { attrs, id, ident, is_placeholder: _, is_shorthand: _, pat, span } = &mut fp;
393393
vis.visit_id(id);
394394
vis.visit_ident(ident);
395395
vis.visit_pat(pat);
@@ -842,10 +842,10 @@ pub fn noop_visit_where_predicate<T: MutVisitor>(pred: &mut WherePredicate, vis:
842842
pub fn noop_visit_variant_data<T: MutVisitor>(vdata: &mut VariantData, vis: &mut T) {
843843
match vdata {
844844
VariantData::Struct(fields, ..) => {
845-
fields.flat_map_in_place(|field| vis.flat_map_struct_field(field));
845+
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
846846
}
847847
VariantData::Tuple(fields, id) => {
848-
fields.flat_map_in_place(|field| vis.flat_map_struct_field(field));
848+
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
849849
vis.visit_id(id);
850850
}
851851
VariantData::Unit(id) => vis.visit_id(id),
@@ -864,22 +864,25 @@ pub fn noop_visit_poly_trait_ref<T: MutVisitor>(p: &mut PolyTraitRef, vis: &mut
864864
vis.visit_span(span);
865865
}
866866

867-
pub fn noop_flat_map_struct_field<T: MutVisitor>(
868-
mut sf: StructField,
867+
pub fn noop_flat_map_field_def<T: MutVisitor>(
868+
mut fd: FieldDef,
869869
visitor: &mut T,
870-
) -> SmallVec<[StructField; 1]> {
871-
let StructField { span, ident, vis, id, ty, attrs, is_placeholder: _ } = &mut sf;
870+
) -> SmallVec<[FieldDef; 1]> {
871+
let FieldDef { span, ident, vis, id, ty, attrs, is_placeholder: _ } = &mut fd;
872872
visitor.visit_span(span);
873873
visit_opt(ident, |ident| visitor.visit_ident(ident));
874874
visitor.visit_vis(vis);
875875
visitor.visit_id(id);
876876
visitor.visit_ty(ty);
877877
visit_attrs(attrs, visitor);
878-
smallvec![sf]
878+
smallvec![fd]
879879
}
880880

881-
pub fn noop_flat_map_field<T: MutVisitor>(mut f: Field, vis: &mut T) -> SmallVec<[Field; 1]> {
882-
let Field { ident, expr, span, is_shorthand: _, attrs, id, is_placeholder: _ } = &mut f;
881+
pub fn noop_flat_map_expr_field<T: MutVisitor>(
882+
mut f: ExprField,
883+
vis: &mut T,
884+
) -> SmallVec<[ExprField; 1]> {
885+
let ExprField { ident, expr, span, is_shorthand: _, attrs, id, is_placeholder: _ } = &mut f;
883886
vis.visit_ident(ident);
884887
vis.visit_expr(expr);
885888
vis.visit_id(id);
@@ -1102,7 +1105,7 @@ pub fn noop_visit_pat<T: MutVisitor>(pat: &mut P<Pat>, vis: &mut T) {
11021105
}
11031106
PatKind::Struct(path, fields, _etc) => {
11041107
vis.visit_path(path);
1105-
fields.flat_map_in_place(|field| vis.flat_map_field_pattern(field));
1108+
fields.flat_map_in_place(|field| vis.flat_map_pat_field(field));
11061109
}
11071110
PatKind::Box(inner) => vis.visit_pat(inner),
11081111
PatKind::Ref(inner, _mutbl) => vis.visit_pat(inner),
@@ -1285,7 +1288,7 @@ pub fn noop_visit_expr<T: MutVisitor>(
12851288
ExprKind::MacCall(mac) => vis.visit_mac_call(mac),
12861289
ExprKind::Struct(path, fields, expr) => {
12871290
vis.visit_path(path);
1288-
fields.flat_map_in_place(|field| vis.flat_map_field(field));
1291+
fields.flat_map_in_place(|field| vis.flat_map_expr_field(field));
12891292
match expr {
12901293
StructRest::Base(expr) => vis.visit_expr(expr),
12911294
StructRest::Rest(_span) => {}

compiler/rustc_ast/src/visit.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ pub trait Visitor<'ast>: Sized {
151151
fn visit_variant_data(&mut self, s: &'ast VariantData) {
152152
walk_struct_def(self, s)
153153
}
154-
fn visit_struct_field(&mut self, s: &'ast StructField) {
155-
walk_struct_field(self, s)
154+
fn visit_field_def(&mut self, s: &'ast FieldDef) {
155+
walk_field_def(self, s)
156156
}
157157
fn visit_enum_def(
158158
&mut self,
@@ -208,11 +208,11 @@ pub trait Visitor<'ast>: Sized {
208208
fn visit_fn_header(&mut self, _header: &'ast FnHeader) {
209209
// Nothing to do
210210
}
211-
fn visit_field(&mut self, f: &'ast Field) {
212-
walk_field(self, f)
211+
fn visit_expr_field(&mut self, f: &'ast ExprField) {
212+
walk_expr_field(self, f)
213213
}
214-
fn visit_field_pattern(&mut self, fp: &'ast FieldPat) {
215-
walk_field_pattern(self, fp)
214+
fn visit_pat_field(&mut self, fp: &'ast PatField) {
215+
walk_pat_field(self, fp)
216216
}
217217
}
218218

@@ -364,13 +364,13 @@ where
364364
walk_list!(visitor, visit_attribute, &variant.attrs);
365365
}
366366

367-
pub fn walk_field<'a, V: Visitor<'a>>(visitor: &mut V, f: &'a Field) {
367+
pub fn walk_expr_field<'a, V: Visitor<'a>>(visitor: &mut V, f: &'a ExprField) {
368368
visitor.visit_expr(&f.expr);
369369
visitor.visit_ident(f.ident);
370370
walk_list!(visitor, visit_attribute, f.attrs.iter());
371371
}
372372

373-
pub fn walk_field_pattern<'a, V: Visitor<'a>>(visitor: &mut V, fp: &'a FieldPat) {
373+
pub fn walk_pat_field<'a, V: Visitor<'a>>(visitor: &mut V, fp: &'a PatField) {
374374
visitor.visit_ident(fp.ident);
375375
visitor.visit_pat(&fp.pat);
376376
walk_list!(visitor, visit_attribute, fp.attrs.iter());
@@ -509,7 +509,7 @@ pub fn walk_pat<'a, V: Visitor<'a>>(visitor: &mut V, pattern: &'a Pat) {
509509
}
510510
PatKind::Struct(ref path, ref fields, _) => {
511511
visitor.visit_path(path, pattern.id);
512-
walk_list!(visitor, visit_field_pattern, fields);
512+
walk_list!(visitor, visit_pat_field, fields);
513513
}
514514
PatKind::Box(ref subpattern)
515515
| PatKind::Ref(ref subpattern, _)
@@ -668,16 +668,16 @@ pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem,
668668
}
669669

670670
pub fn walk_struct_def<'a, V: Visitor<'a>>(visitor: &mut V, struct_definition: &'a VariantData) {
671-
walk_list!(visitor, visit_struct_field, struct_definition.fields());
671+
walk_list!(visitor, visit_field_def, struct_definition.fields());
672672
}
673673

674-
pub fn walk_struct_field<'a, V: Visitor<'a>>(visitor: &mut V, struct_field: &'a StructField) {
675-
visitor.visit_vis(&struct_field.vis);
676-
if let Some(ident) = struct_field.ident {
674+
pub fn walk_field_def<'a, V: Visitor<'a>>(visitor: &mut V, field: &'a FieldDef) {
675+
visitor.visit_vis(&field.vis);
676+
if let Some(ident) = field.ident {
677677
visitor.visit_ident(ident);
678678
}
679-
visitor.visit_ty(&struct_field.ty);
680-
walk_list!(visitor, visit_attribute, &struct_field.attrs);
679+
visitor.visit_ty(&field.ty);
680+
walk_list!(visitor, visit_attribute, &field.attrs);
681681
}
682682

683683
pub fn walk_block<'a, V: Visitor<'a>>(visitor: &mut V, block: &'a Block) {
@@ -723,7 +723,7 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) {
723723
}
724724
ExprKind::Struct(ref path, ref fields, ref optional_base) => {
725725
visitor.visit_path(path, expression.id);
726-
walk_list!(visitor, visit_field, fields);
726+
walk_list!(visitor, visit_expr_field, fields);
727727
match optional_base {
728728
StructRest::Base(expr) => visitor.visit_expr(expr),
729729
StructRest::Rest(_span) => {}

compiler/rustc_ast_lowering/src/expr.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
244244
ParamMode::Optional,
245245
ImplTraitContext::disallowed(),
246246
)),
247-
self.arena.alloc_from_iter(fields.iter().map(|x| self.lower_field(x))),
247+
self.arena.alloc_from_iter(fields.iter().map(|x| self.lower_expr_field(x))),
248248
rest,
249249
)
250250
}
@@ -1113,7 +1113,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
11131113
ExprKind::Struct(path, fields, rest) => {
11141114
let field_pats = self.arena.alloc_from_iter(fields.iter().map(|f| {
11151115
let pat = self.destructure_assign(&f.expr, eq_sign_span, assignments);
1116-
hir::FieldPat {
1116+
hir::PatField {
11171117
hir_id: self.next_id(),
11181118
ident: f.ident,
11191119
pat,
@@ -1244,7 +1244,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
12441244
e1.iter().map(|e| ("start", e)).chain(e2.iter().map(|e| ("end", e))).map(|(s, e)| {
12451245
let expr = self.lower_expr(&e);
12461246
let ident = Ident::new(Symbol::intern(s), e.span);
1247-
self.field(ident, expr, e.span)
1247+
self.expr_field(ident, expr, e.span)
12481248
}),
12491249
);
12501250

@@ -1658,8 +1658,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
16581658
hir::ExprKind::LlvmInlineAsm(self.arena.alloc(hir_asm))
16591659
}
16601660

1661-
fn lower_field(&mut self, f: &Field) -> hir::Field<'hir> {
1662-
hir::Field {
1661+
fn lower_expr_field(&mut self, f: &ExprField) -> hir::ExprField<'hir> {
1662+
hir::ExprField {
16631663
hir_id: self.next_id(),
16641664
ident: f.ident,
16651665
expr: self.lower_expr(&f.expr),
@@ -2156,8 +2156,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
21562156
hir::Expr { hir_id, kind, span }
21572157
}
21582158

2159-
fn field(&mut self, ident: Ident, expr: &'hir hir::Expr<'hir>, span: Span) -> hir::Field<'hir> {
2160-
hir::Field { hir_id: self.next_id(), ident, span, expr, is_shorthand: false }
2159+
fn expr_field(
2160+
&mut self,
2161+
ident: Ident,
2162+
expr: &'hir hir::Expr<'hir>,
2163+
span: Span,
2164+
) -> hir::ExprField<'hir> {
2165+
hir::ExprField { hir_id: self.next_id(), ident, span, expr, is_shorthand: false }
21612166
}
21622167

21632168
fn arm(&mut self, pat: &'hir hir::Pat<'hir>, expr: &'hir hir::Expr<'hir>) -> hir::Arm<'hir> {

compiler/rustc_ast_lowering/src/item.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -769,15 +769,15 @@ impl<'hir> LoweringContext<'_, 'hir> {
769769
match *vdata {
770770
VariantData::Struct(ref fields, recovered) => hir::VariantData::Struct(
771771
self.arena
772-
.alloc_from_iter(fields.iter().enumerate().map(|f| self.lower_struct_field(f))),
772+
.alloc_from_iter(fields.iter().enumerate().map(|f| self.lower_field_def(f))),
773773
recovered,
774774
),
775775
VariantData::Tuple(ref fields, id) => {
776776
let ctor_id = self.lower_node_id(id);
777777
self.alias_attrs(ctor_id, parent_id);
778778
hir::VariantData::Tuple(
779779
self.arena.alloc_from_iter(
780-
fields.iter().enumerate().map(|f| self.lower_struct_field(f)),
780+
fields.iter().enumerate().map(|f| self.lower_field_def(f)),
781781
),
782782
ctor_id,
783783
)
@@ -790,7 +790,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
790790
}
791791
}
792792

793-
fn lower_struct_field(&mut self, (index, f): (usize, &StructField)) -> hir::StructField<'hir> {
793+
fn lower_field_def(&mut self, (index, f): (usize, &FieldDef)) -> hir::FieldDef<'hir> {
794794
let ty = if let TyKind::Path(ref qself, ref path) = f.ty.kind {
795795
let t = self.lower_path_ty(
796796
&f.ty,
@@ -805,7 +805,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
805805
};
806806
let hir_id = self.lower_node_id(f.id);
807807
self.lower_attrs(hir_id, &f.attrs);
808-
hir::StructField {
808+
hir::FieldDef {
809809
span: f.span,
810810
hir_id,
811811
ident: match f.ident {

0 commit comments

Comments
 (0)