diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-08 03:20:57 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-13 15:19:24 +0300 |
| commit | 30af54dede8b9f03a83dd5ad588bb430a5a76270 (patch) | |
| tree | 34ffdf424d6b9e054b6f36470cd97f401434db96 /src/libsyntax | |
| parent | f4e3851aa7bbd49294c20cc63eef9974f20192c8 (diff) | |
| download | rust-30af54dede8b9f03a83dd5ad588bb430a5a76270.tar.gz rust-30af54dede8b9f03a83dd5ad588bb430a5a76270.zip | |
Dict -> Struct, StructDef -> VariantData, def -> data
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/config.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/ext/deriving/generic/mod.rs | 24 | ||||
| -rw-r--r-- | src/libsyntax/ext/deriving/primitive.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/feature_gate.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 22 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 8 |
11 files changed, 56 insertions, 56 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index b786e778edb..af623549767 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -1579,7 +1579,7 @@ pub struct EnumDef { pub struct Variant_ { pub name: Ident, pub attrs: Vec<Attribute>, - pub def: P<StructDef>, + pub data: P<VariantData>, /// Explicit discriminant, eg `Foo = 1` pub disr_expr: Option<P<Expr>>, } @@ -1742,13 +1742,13 @@ impl StructFieldKind { #[derive(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)] pub enum VariantKind { - Dict, + Struct, Tuple, Unit, } #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)] -pub struct StructDef { +pub struct VariantData { /// Fields, not including ctor pub fields: Vec<StructField>, /// ID of the constructor. This is only used for tuple- or enum-like @@ -1798,7 +1798,7 @@ pub enum Item_ { /// An enum definition, e.g. `enum Foo<A, B> {C<A>, D<B>}` ItemEnum(EnumDef, Generics), /// A struct definition, e.g. `struct Foo<A> {x: A}` - ItemStruct(P<StructDef>, Generics), + ItemStruct(P<VariantData>, Generics), /// Represents a Trait Declaration ItemTrait(Unsafety, Generics, diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index c52c5984858..42382d0459f 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -452,8 +452,8 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> { visit::walk_struct_field(self, struct_field) } - fn visit_struct_def(&mut self, - struct_def: &StructDef, + fn visit_variant_data(&mut self, + struct_def: &VariantData, _: ast::Ident, _: &ast::Generics, _: NodeId, diff --git a/src/libsyntax/config.rs b/src/libsyntax/config.rs index 744f83467d6..02a9d0b5c38 100644 --- a/src/libsyntax/config.rs +++ b/src/libsyntax/config.rs @@ -140,13 +140,13 @@ fn fold_item_underscore<F>(cx: &mut Context<F>, item: ast::Item_) -> ast::Item_ if !(cx.in_cfg)(&v.node.attrs) { None } else { - Some(v.map(|Spanned {node: ast::Variant_ {name, attrs, def, + Some(v.map(|Spanned {node: ast::Variant_ {name, attrs, data, disr_expr}, span}| { Spanned { node: ast::Variant_ { name: name, attrs: attrs, - def: fold_struct(cx, def), + data: fold_struct(cx, data), disr_expr: disr_expr, }, span: span @@ -164,11 +164,11 @@ fn fold_item_underscore<F>(cx: &mut Context<F>, item: ast::Item_) -> ast::Item_ fold::noop_fold_item_underscore(item, cx) } -fn fold_struct<F>(cx: &mut Context<F>, def: P<ast::StructDef>) -> P<ast::StructDef> where +fn fold_struct<F>(cx: &mut Context<F>, def: P<ast::VariantData>) -> P<ast::VariantData> where F: FnMut(&[ast::Attribute]) -> bool { - def.map(|ast::StructDef { fields, id, kind }| { - ast::StructDef { + def.map(|ast::VariantData { fields, id, kind }| { + ast::VariantData { fields: fields.into_iter().filter(|m| { (cx.in_cfg)(&m.node.attrs) }).collect(), diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 706a16d1f02..105a7036c5f 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -247,9 +247,9 @@ pub trait AstBuilder { fn item_struct_poly(&self, span: Span, name: Ident, - struct_def: ast::StructDef, + struct_def: ast::VariantData, generics: Generics) -> P<ast::Item>; - fn item_struct(&self, span: Span, name: Ident, struct_def: ast::StructDef) -> P<ast::Item>; + fn item_struct(&self, span: Span, name: Ident, struct_def: ast::VariantData) -> P<ast::Item>; fn item_mod(&self, span: Span, inner_span: Span, name: Ident, attrs: Vec<ast::Attribute>, @@ -1008,7 +1008,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { ast::Variant_ { name: name, attrs: Vec::new(), - def: P(ast::StructDef { fields: fields, + data: P(ast::VariantData { fields: fields, id: ast::DUMMY_NODE_ID, kind: kind }), disr_expr: None, @@ -1028,7 +1028,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { } fn item_struct(&self, span: Span, name: Ident, - struct_def: ast::StructDef) -> P<ast::Item> { + struct_def: ast::VariantData) -> P<ast::Item> { self.item_struct_poly( span, name, @@ -1038,7 +1038,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { } fn item_struct_poly(&self, span: Span, name: Ident, - struct_def: ast::StructDef, generics: Generics) -> P<ast::Item> { + struct_def: ast::VariantData, generics: Generics) -> P<ast::Item> { self.item(span, name, Vec::new(), ast::ItemStruct(P(struct_def), generics)) } diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index f6ea6aef108..b375dee4e2c 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -174,9 +174,9 @@ //! A static method on the types above would result in, //! //! ```{.text} -//! StaticStruct(<ast::StructDef of A>, Named(vec![(<ident of x>, <span of x>)])) +//! StaticStruct(<ast::VariantData of A>, Named(vec![(<ident of x>, <span of x>)])) //! -//! StaticStruct(<ast::StructDef of B>, Unnamed(vec![<span of x>])) +//! StaticStruct(<ast::VariantData of B>, Unnamed(vec![<span of x>])) //! //! StaticEnum(<ast::EnumDef of C>, //! vec![(<ident of C0>, <span of C0>, Unnamed(vec![<span of i32>])), @@ -194,7 +194,7 @@ use std::vec; use abi::Abi; use abi; use ast; -use ast::{EnumDef, Expr, Ident, Generics, StructDef}; +use ast::{EnumDef, Expr, Ident, Generics, VariantData}; use ast_util; use attr; use attr::AttrMetaMethods; @@ -317,7 +317,7 @@ pub enum SubstructureFields<'a> { EnumNonMatchingCollapsed(Vec<Ident>, &'a [P<ast::Variant>], &'a [Ident]), /// A static method where `Self` is a struct. - StaticStruct(&'a ast::StructDef, StaticFields), + StaticStruct(&'a ast::VariantData, StaticFields), /// A static method where `Self` is an enum. StaticEnum(&'a ast::EnumDef, Vec<(Ident, Span, StaticFields)>), } @@ -649,7 +649,7 @@ impl<'a> TraitDef<'a> { fn expand_struct_def(&self, cx: &mut ExtCtxt, - struct_def: &'a StructDef, + struct_def: &'a VariantData, type_ident: Ident, generics: &Generics) -> P<ast::Item> { let field_tys: Vec<P<ast::Ty>> = struct_def.fields.iter() @@ -700,7 +700,7 @@ impl<'a> TraitDef<'a> { let mut field_tys = Vec::new(); for variant in &enum_def.variants { - field_tys.extend(variant.node.def.fields.iter() + field_tys.extend(variant.node.data.fields.iter() .map(|field| field.node.ty.clone())); } @@ -927,7 +927,7 @@ impl<'a> MethodDef<'a> { fn expand_struct_method_body<'b>(&self, cx: &mut ExtCtxt, trait_: &TraitDef<'b>, - struct_def: &'b StructDef, + struct_def: &'b VariantData, type_ident: Ident, self_args: &[P<Expr>], nonself_args: &[P<Expr>]) @@ -996,7 +996,7 @@ impl<'a> MethodDef<'a> { fn expand_static_struct_method_body(&self, cx: &mut ExtCtxt, trait_: &TraitDef, - struct_def: &StructDef, + struct_def: &VariantData, type_ident: Ident, self_args: &[P<Expr>], nonself_args: &[P<Expr>]) @@ -1405,7 +1405,7 @@ impl<'a> MethodDef<'a> { -> P<Expr> { let summary = enum_def.variants.iter().map(|v| { let ident = v.node.name; - let summary = trait_.summarise_struct(cx, &v.node.def); + let summary = trait_.summarise_struct(cx, &v.node.data); (ident, v.span, summary) }).collect(); self.call_substructure_method(cx, trait_, type_ident, @@ -1441,7 +1441,7 @@ impl<'a> TraitDef<'a> { fn summarise_struct(&self, cx: &mut ExtCtxt, - struct_def: &StructDef) -> StaticFields { + struct_def: &VariantData) -> StaticFields { let mut named_idents = Vec::new(); let mut just_spans = Vec::new(); for field in struct_def.fields.iter(){ @@ -1477,7 +1477,7 @@ impl<'a> TraitDef<'a> { fn create_struct_pattern(&self, cx: &mut ExtCtxt, struct_path: ast::Path, - struct_def: &'a StructDef, + struct_def: &'a VariantData, prefix: &str, mutbl: ast::Mutability) -> (P<ast::Pat>, Vec<(Span, Option<Ident>, @@ -1545,7 +1545,7 @@ impl<'a> TraitDef<'a> { -> (P<ast::Pat>, Vec<(Span, Option<Ident>, P<Expr>, &'a [ast::Attribute])>) { let variant_ident = variant.node.name; let variant_path = cx.path(variant.span, vec![enum_ident, variant_ident]); - self.create_struct_pattern(cx, variant_path, &variant.node.def, prefix, mutbl) + self.create_struct_pattern(cx, variant_path, &variant.node.data, prefix, mutbl) } } diff --git a/src/libsyntax/ext/deriving/primitive.rs b/src/libsyntax/ext/deriving/primitive.rs index 7b64e5522a4..3a079717b8b 100644 --- a/src/libsyntax/ext/deriving/primitive.rs +++ b/src/libsyntax/ext/deriving/primitive.rs @@ -94,7 +94,7 @@ fn cs_from(name: &str, cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure let mut arms = Vec::new(); for variant in &enum_def.variants { - let def = &variant.node.def; + let def = &variant.node.data; if def.kind != ast::VariantKind::Unit { cx.span_err(trait_span, "`FromPrimitive` cannot be derived \ for enums with non-unit variants"); diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 66a422ce664..a6922c24693 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -857,10 +857,10 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { visit::walk_item(self, i); } - fn visit_struct_def(&mut self, s: &'v ast::StructDef, _: ast::Ident, + fn visit_variant_data(&mut self, s: &'v ast::VariantData, _: ast::Ident, _: &'v ast::Generics, _: ast::NodeId, span: Span) { if s.fields.is_empty() { - if s.kind == ast::VariantKind::Dict { + if s.kind == ast::VariantKind::Struct { self.gate_feature("braced_empty_structs", span, "empty structs and enum variants with braces are unstable"); } else if s.kind == ast::VariantKind::Tuple { diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 144eab92795..d7b7fc242b4 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -231,7 +231,7 @@ pub trait Folder : Sized { noop_fold_poly_trait_ref(p, self) } - fn fold_struct_def(&mut self, struct_def: P<StructDef>) -> P<StructDef> { + fn fold_variant_data(&mut self, struct_def: P<VariantData>) -> P<VariantData> { noop_fold_struct_def(struct_def, self) } @@ -446,11 +446,11 @@ pub fn noop_fold_foreign_mod<T: Folder>(ForeignMod {abi, items}: ForeignMod, } pub fn noop_fold_variant<T: Folder>(v: P<Variant>, fld: &mut T) -> P<Variant> { - v.map(|Spanned {node: Variant_ {name, attrs, def, disr_expr}, span}| Spanned { + v.map(|Spanned {node: Variant_ {name, attrs, data, disr_expr}, span}| Spanned { node: Variant_ { name: name, attrs: fold_attrs(attrs, fld), - def: fld.fold_struct_def(def), + data: fld.fold_variant_data(data), disr_expr: disr_expr.map(|e| fld.fold_expr(e)), }, span: fld.new_span(span), @@ -814,8 +814,8 @@ pub fn noop_fold_where_predicate<T: Folder>( } } -pub fn noop_fold_struct_def<T: Folder>(struct_def: P<StructDef>, fld: &mut T) -> P<StructDef> { - struct_def.map(|StructDef { fields, id, kind }| StructDef { +pub fn noop_fold_struct_def<T: Folder>(struct_def: P<VariantData>, fld: &mut T) -> P<VariantData> { + struct_def.map(|VariantData { fields, id, kind }| VariantData { fields: fields.move_map(|f| fld.fold_struct_field(f)), id: fld.new_id(id), kind: kind, @@ -925,7 +925,7 @@ pub fn noop_fold_item_underscore<T: Folder>(i: Item_, folder: &mut T) -> Item_ { folder.fold_generics(generics)) } ItemStruct(struct_def, generics) => { - let struct_def = folder.fold_struct_def(struct_def); + let struct_def = folder.fold_variant_data(struct_def); ItemStruct(struct_def, folder.fold_generics(generics)) } ItemDefaultImpl(unsafety, ref trait_ref) => { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 47632781956..f944c93073a 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -45,7 +45,7 @@ use ast::{PatRegion, PatStruct, PatTup, PatVec, PatWild, PatWildMulti}; use ast::PatWildSingle; use ast::{PolyTraitRef, QSelf}; use ast::{Return, BiShl, BiShr, Stmt, StmtDecl}; -use ast::{StmtExpr, StmtSemi, StmtMac, StructDef, StructField, VariantKind}; +use ast::{StmtExpr, StmtSemi, StmtMac, VariantData, StructField, VariantKind}; use ast::{BiSub, StrStyle}; use ast::{SelfExplicit, SelfRegion, SelfStatic, SelfValue}; use ast::{Delimited, SequenceRepetition, TokenTree, TraitItem, TraitRef}; @@ -4647,7 +4647,7 @@ impl<'a> Parser<'a> { (Vec::new(), VariantKind::Unit) } else { // If we see: `struct Foo<T> where T: Copy { ... }` - (try!(self.parse_record_struct_body()), VariantKind::Dict) + (try!(self.parse_record_struct_body()), VariantKind::Struct) } // No `where` so: `struct Foo<T>;` } else if try!(self.eat(&token::Semi) ){ @@ -4655,7 +4655,7 @@ impl<'a> Parser<'a> { // Record-style struct definition } else if self.token == token::OpenDelim(token::Brace) { let fields = try!(self.parse_record_struct_body()); - (fields, VariantKind::Dict) + (fields, VariantKind::Struct) // Tuple-style struct definition with optional where-clause. } else if self.token == token::OpenDelim(token::Paren) { let fields = try!(self.parse_tuple_struct_body(&mut generics)); @@ -4667,7 +4667,7 @@ impl<'a> Parser<'a> { }; Ok((class_name, - ItemStruct(P(ast::StructDef { + ItemStruct(P(ast::VariantData { fields: fields, id: ast::DUMMY_NODE_ID, kind: kind, @@ -5103,17 +5103,17 @@ impl<'a> Parser<'a> { /// Parse a structure-like enum variant definition /// this should probably be renamed or refactored... - fn parse_struct_def(&mut self) -> PResult<P<StructDef>> { + fn parse_struct_def(&mut self) -> PResult<P<VariantData>> { let mut fields: Vec<StructField> = Vec::new(); while self.token != token::CloseDelim(token::Brace) { fields.push(try!(self.parse_struct_decl_field(false))); } try!(self.bump()); - Ok(P(StructDef { + Ok(P(VariantData { fields: fields, id: ast::DUMMY_NODE_ID, - kind: VariantKind::Dict, + kind: VariantKind::Struct, })) } @@ -5150,17 +5150,17 @@ impl<'a> Parser<'a> { id: ast::DUMMY_NODE_ID, }}); } - struct_def = P(StructDef { fields: fields, + struct_def = P(VariantData { fields: fields, id: ast::DUMMY_NODE_ID, kind: ast::VariantKind::Tuple }); } else if try!(self.eat(&token::Eq) ){ disr_expr = Some(try!(self.parse_expr_nopanic())); any_disr = disr_expr.as_ref().map(|expr| expr.span); - struct_def = P(StructDef { fields: Vec::new(), + struct_def = P(VariantData { fields: Vec::new(), id: ast::DUMMY_NODE_ID, kind: ast::VariantKind::Unit }); } else { - struct_def = P(StructDef { fields: Vec::new(), + struct_def = P(VariantData { fields: Vec::new(), id: ast::DUMMY_NODE_ID, kind: ast::VariantKind::Unit }); } @@ -5168,7 +5168,7 @@ impl<'a> Parser<'a> { let vr = ast::Variant_ { name: ident, attrs: variant_attrs, - def: struct_def, + data: struct_def, disr_expr: disr_expr, }; variants.push(P(spanned(vlo, self.last_span.hi, vr))); diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 5535064c8ec..0f6041d2cd0 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1385,14 +1385,14 @@ impl<'a> State<'a> { } pub fn print_struct(&mut self, - struct_def: &ast::StructDef, + struct_def: &ast::VariantData, generics: &ast::Generics, ident: ast::Ident, span: codemap::Span, print_finalizer: bool) -> io::Result<()> { try!(self.print_ident(ident)); try!(self.print_generics(generics)); - if struct_def.kind != ast::VariantKind::Dict { + if struct_def.kind != ast::VariantKind::Struct { if struct_def.kind == ast::VariantKind::Tuple { try!(self.popen()); try!(self.commasep( @@ -1510,7 +1510,7 @@ impl<'a> State<'a> { pub fn print_variant(&mut self, v: &ast::Variant) -> io::Result<()> { try!(self.head("")); let generics = ast_util::empty_generics(); - try!(self.print_struct(&v.node.def, &generics, v.node.name, v.span, false)); + try!(self.print_struct(&v.node.data, &generics, v.node.name, v.span, false)); match v.node.disr_expr { Some(ref d) => { try!(space(&mut self.s)); @@ -3119,7 +3119,7 @@ mod tests { name: ident, attrs: Vec::new(), // making this up as I go.... ? - def: P(ast::StructDef { fields: Vec::new(), + data: P(ast::VariantData { fields: Vec::new(), id: ast::DUMMY_NODE_ID, kind: ast::VariantKind::Unit }), disr_expr: None, diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index b547f8c019c..fdff0bf72eb 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -80,7 +80,7 @@ pub trait Visitor<'v> : Sized { fn visit_poly_trait_ref(&mut self, t: &'v PolyTraitRef, m: &'v TraitBoundModifier) { walk_poly_trait_ref(self, t, m) } - fn visit_struct_def(&mut self, s: &'v StructDef, _: Ident, + fn visit_variant_data(&mut self, s: &'v VariantData, _: Ident, _: &'v Generics, _: NodeId, _: Span) { walk_struct_def(self, s) } @@ -289,7 +289,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) { } ItemStruct(ref struct_definition, ref generics) => { visitor.visit_generics(generics); - visitor.visit_struct_def(struct_definition, item.ident, + visitor.visit_variant_data(struct_definition, item.ident, generics, item.id, item.span); } ItemTrait(_, ref generics, ref bounds, ref methods) => { @@ -316,7 +316,7 @@ pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V, generics: &'v Generics, item_id: NodeId) { visitor.visit_ident(variant.span, variant.node.name); - visitor.visit_struct_def(&variant.node.def, variant.node.name, + visitor.visit_variant_data(&variant.node.data, variant.node.name, generics, item_id, variant.span); walk_list!(visitor, visit_expr, &variant.node.disr_expr); walk_list!(visitor, visit_attribute, &variant.node.attrs); @@ -603,7 +603,7 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt } pub fn walk_struct_def<'v, V: Visitor<'v>>(visitor: &mut V, - struct_definition: &'v StructDef) { + struct_definition: &'v VariantData) { walk_list!(visitor, visit_struct_field, &struct_definition.fields); } |
