diff --git a/src/expr.rs b/src/expr.rs
index bcd6e1e..8b781b5 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -27,7 +27,7 @@
         pub Array(ExprArray #full {
             pub attrs: Vec<Attribute>,
             pub bracket_token: token::Bracket,
-            pub exprs: Delimited<Expr, Token![,]>,
+            pub elems: Delimited<Expr, Token![,]>,
         }),
 
         /// A function call.
@@ -60,7 +60,7 @@
         pub Tuple(ExprTuple #full {
             pub attrs: Vec<Attribute>,
             pub paren_token: token::Paren,
-            pub args: Delimited<Expr, Token![,]>,
+            pub elems: Delimited<Expr, Token![,]>,
         }),
 
         /// A binary operation, e.g. `a + b`, `a * b`.
@@ -1353,7 +1353,7 @@
             elems: brackets!(call!(Delimited::parse_terminated)) >>
             (ExprArray {
                 attrs: Vec::new(),
-                exprs: elems.0,
+                elems: elems.0,
                 bracket_token: elems.1,
             })
         ));
@@ -1408,7 +1408,7 @@
             elems: parens!(call!(Delimited::parse_terminated)) >>
             (ExprTuple {
                 attrs: Vec::new(),
-                args: elems.0,
+                elems: elems.0,
                 paren_token: elems.1,
             })
         ));
@@ -2408,7 +2408,7 @@
         fn to_tokens(&self, tokens: &mut Tokens) {
             tokens.append_all(self.attrs.outer());
             self.bracket_token.surround(tokens, |tokens| {
-                self.exprs.to_tokens(tokens);
+                self.elems.to_tokens(tokens);
             })
         }
     }
@@ -2447,10 +2447,10 @@
         fn to_tokens(&self, tokens: &mut Tokens) {
             tokens.append_all(self.attrs.outer());
             self.paren_token.surround(tokens, |tokens| {
-                self.args.to_tokens(tokens);
+                self.elems.to_tokens(tokens);
                 // If we only have one argument, we need a trailing comma to
                 // distinguish ExprTuple from ExprParen.
-                if self.args.len() == 1 && !self.args.trailing_delim() {
+                if self.elems.len() == 1 && !self.elems.trailing_delim() {
                     <Token![,]>::default().to_tokens(tokens);
                 }
             })
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 05632a9..566a2ce 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1006,7 +1006,7 @@
     ExprArray {
         attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
         bracket_token: Bracket(tokens_helper(_visitor, &(_i . bracket_token).0)),
-        exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
+        elems: FoldHelper::lift(_i . elems, |it| { _visitor.fold_expr(it) }),
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1296,7 +1296,7 @@
     ExprTuple {
         attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
         paren_token: Paren(tokens_helper(_visitor, &(_i . paren_token).0)),
-        args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
+        elems: FoldHelper::lift(_i . elems, |it| { _visitor.fold_expr(it) }),
     }
 }
 
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index a9a6a20..b4464d8 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -813,7 +813,7 @@
 pub fn visit_expr_array<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprArray) {
     for it in & _i . attrs { _visitor.visit_attribute(it) };
     tokens_helper(_visitor, &(& _i . bracket_token).0);
-    for el in & _i . exprs { let it = el.item(); _visitor.visit_expr(it) };
+    for el in & _i . elems { let it = el.item(); _visitor.visit_expr(it) };
 }
 # [ cfg ( feature = "full" ) ]
 pub fn visit_expr_assign<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprAssign) {
@@ -1041,7 +1041,7 @@
 pub fn visit_expr_tuple<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprTuple) {
     for it in & _i . attrs { _visitor.visit_attribute(it) };
     tokens_helper(_visitor, &(& _i . paren_token).0);
-    for el in & _i . args { let it = el.item(); _visitor.visit_expr(it) };
+    for el in & _i . elems { let it = el.item(); _visitor.visit_expr(it) };
 }
 
 pub fn visit_expr_type<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprType) {
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 4a0656d..c07256f 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -813,7 +813,7 @@
 pub fn visit_expr_array_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ExprArray) {
     for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
     tokens_helper(_visitor, &mut (& mut _i . bracket_token).0);
-    for mut el in & mut _i . exprs { let it = el.item_mut(); _visitor.visit_expr_mut(it) };
+    for mut el in & mut _i . elems { let it = el.item_mut(); _visitor.visit_expr_mut(it) };
 }
 # [ cfg ( feature = "full" ) ]
 pub fn visit_expr_assign_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ExprAssign) {
@@ -1041,7 +1041,7 @@
 pub fn visit_expr_tuple_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ExprTuple) {
     for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
     tokens_helper(_visitor, &mut (& mut _i . paren_token).0);
-    for mut el in & mut _i . args { let it = el.item_mut(); _visitor.visit_expr_mut(it) };
+    for mut el in & mut _i . elems { let it = el.item_mut(); _visitor.visit_expr_mut(it) };
 }
 
 pub fn visit_expr_type_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ExprType) {
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index e0318ff..6f41a1d 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -291,7 +291,7 @@
                             base: Box::new(Expr::Tuple(ExprTuple {
                                 attrs: Vec::new(),
                                 paren_token: Default::default(),
-                                args: vec![
+                                elems: vec![
                                     Expr::Lit(ExprLit {
                                         attrs: Vec::new(),
                                         lit: Lit {
diff --git a/tests/test_precedence.rs b/tests/test_precedence.rs
index 9071b04..e49af77 100644
--- a/tests/test_precedence.rs
+++ b/tests/test_precedence.rs
@@ -360,7 +360,7 @@
 
             Expr::Tuple(ExprTuple {
                 attrs: vec![],
-                args: Delimited::new(),
+                elems: Delimited::new(),
                 paren_token: token::Paren::default(),
             })
         }
