Combine Expr and ExprKind
diff --git a/tests/test_precedence.rs b/tests/test_precedence.rs
index d8dc4ed..9071b04 100644
--- a/tests/test_precedence.rs
+++ b/tests/test_precedence.rs
@@ -292,15 +292,15 @@
fn syn_brackets(syn_expr: syn::Expr) -> syn::Expr {
use syn::*;
use syn::fold::*;
+ use std::mem;
- fn paren(folder: &mut BracketsFolder, node: ExprKind) -> ExprKind {
- ExprKind::Paren(ExprParen {
+ fn paren(folder: &mut BracketsFolder, mut node: Expr) -> Expr {
+ let attrs = mem::replace(node.attrs_mut(), Vec::new());
+ Expr::Paren(ExprParen {
+ attrs: attrs,
expr: Box::new(fold_expr(
folder,
- Expr {
- node: node,
- attrs: vec![],
- },
+ node,
)),
paren_token: token::Paren::default(),
})
@@ -309,19 +309,17 @@
struct BracketsFolder;
impl Folder for BracketsFolder {
fn fold_expr(&mut self, expr: Expr) -> Expr {
- let kind = match expr.node {
- ExprKind::Group(_) => unreachable!(),
- ExprKind::Paren(p) => paren(self, p.expr.node),
- ExprKind::If(..)
- | ExprKind::Unsafe(..)
- | ExprKind::Block(..)
- | ExprKind::IfLet(..) => {
+ match expr {
+ Expr::Group(_) => unreachable!(),
+ Expr::Paren(p) => paren(self, *p.expr),
+ Expr::If(..)
+ | Expr::Unsafe(..)
+ | Expr::Block(..)
+ | Expr::IfLet(..) => {
return fold_expr(self, expr);
}
node => paren(self, node),
- };
-
- Expr { node: kind, ..expr }
+ }
}
fn fold_stmt(&mut self, stmt: Stmt) -> Stmt {
@@ -360,13 +358,11 @@
fn fold_expr(&mut self, expr: Expr) -> Expr {
self.0.push(expr);
- Expr {
- node: ExprKind::Tuple(ExprTuple {
- args: Delimited::new(),
- paren_token: token::Paren::default(),
- }),
+ Expr::Tuple(ExprTuple {
attrs: vec![],
- }
+ args: Delimited::new(),
+ paren_token: token::Paren::default(),
+ })
}
}