X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibsyntax%2Fconfig.rs;h=0ca110c5b1ed2cf1a490e7f3f9f782b91a8a5c53;hb=46750d0409a9c3ba5214aa20ccb0c9bdbf09ea7e;hp=faf0b51c8de0eda798c088a140ed32b2c880ac73;hpb=e9b74a90172e99e361ff46277f52bfc03d0a7ba4;p=rust.git diff --git a/src/libsyntax/config.rs b/src/libsyntax/config.rs index faf0b51c8de..0ca110c5b1e 100644 --- a/src/libsyntax/config.rs +++ b/src/libsyntax/config.rs @@ -140,21 +140,14 @@ fn fold_item_underscore(cx: &mut Context, item: ast::Item_) -> ast::Item_ if !(cx.in_cfg)(&v.node.attrs) { None } else { - Some(v.map(|Spanned {node: ast::Variant_ {id, name, attrs, kind, - disr_expr, vis}, span}| { + Some(v.map(|Spanned {node: ast::Variant_ {name, attrs, data, + disr_expr}, span}| { Spanned { node: ast::Variant_ { - id: id, name: name, attrs: attrs, - kind: match kind { - ast::TupleVariantKind(..) => kind, - ast::StructVariantKind(def) => { - ast::StructVariantKind(fold_struct(cx, def)) - } - }, + data: fold_struct(cx, data), disr_expr: disr_expr, - vis: vis }, span: span } @@ -171,15 +164,22 @@ fn fold_item_underscore(cx: &mut Context, item: ast::Item_) -> ast::Item_ fold::noop_fold_item_underscore(item, cx) } -fn fold_struct(cx: &mut Context, def: P) -> P where +fn fold_struct(cx: &mut Context, def: P) -> P where F: FnMut(&[ast::Attribute]) -> bool { - def.map(|ast::StructDef { fields, ctor_id }| { - ast::StructDef { - fields: fields.into_iter().filter(|m| { - (cx.in_cfg)(&m.node.attrs) - }).collect(), - ctor_id: ctor_id, + def.map(|vdata| { + match vdata { + ast::VariantData::Struct(fields, id) => { + ast::VariantData::Struct(fields.into_iter().filter(|m| { + (cx.in_cfg)(&m.node.attrs) + }).collect(), id) + } + ast::VariantData::Tuple(fields, id) => { + ast::VariantData::Tuple(fields.into_iter().filter(|m| { + (cx.in_cfg)(&m.node.attrs) + }).collect(), id) + } + ast::VariantData::Unit(id) => ast::VariantData::Unit(id) } }) } @@ -226,10 +226,10 @@ fn fold_expr(cx: &mut Context, expr: P) -> P where fold::noop_fold_expr(ast::Expr { id: id, node: match node { - ast::ExprMatch(m, arms, source) => { + ast::ExprMatch(m, arms) => { ast::ExprMatch(m, arms.into_iter() .filter(|a| (cx.in_cfg)(&a.attrs)) - .collect(), source) + .collect()) } _ => node },