Punctuated
diff --git a/src/expr.rs b/src/expr.rs
index 013a69e..18c0fdf 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1,5 +1,5 @@
use super::*;
-use delimited::Delimited;
+use punctuated::Punctuated;
use proc_macro2::{Span, TokenStream};
#[cfg(feature = "extra-traits")]
use std::hash::{Hash, Hasher};
@@ -30,7 +30,7 @@
pub Array(ExprArray #full {
pub attrs: Vec<Attribute>,
pub bracket_token: token::Bracket,
- pub elems: Delimited<Expr, Token![,]>,
+ pub elems: Punctuated<Expr, Token![,]>,
}),
/// A function call.
@@ -38,7 +38,7 @@
pub attrs: Vec<Attribute>,
pub func: Box<Expr>,
pub paren_token: token::Paren,
- pub args: Delimited<Expr, Token![,]>,
+ pub args: Punctuated<Expr, Token![,]>,
}),
/// A method call (`x.foo::<Bar, Baz>(a, b, c, d)`)
@@ -53,14 +53,14 @@
pub method: Ident,
pub turbofish: Option<MethodTurbofish>,
pub paren_token: token::Paren,
- pub args: Delimited<Expr, Token![,]>,
+ pub args: Punctuated<Expr, Token![,]>,
}),
/// A tuple, e.g. `(a, b, c, d)`.
pub Tuple(ExprTuple #full {
pub attrs: Vec<Attribute>,
pub paren_token: token::Paren,
- pub elems: Delimited<Expr, Token![,]>,
+ pub elems: Punctuated<Expr, Token![,]>,
}),
/// A binary operation, e.g. `a + b`, `a * b`.
@@ -193,7 +193,7 @@
pub attrs: Vec<Attribute>,
pub capture: Option<Token![move]>,
pub or1_token: Token![|],
- pub inputs: Delimited<FnArg, Token![,]>,
+ pub inputs: Punctuated<FnArg, Token![,]>,
pub or2_token: Token![|],
pub output: ReturnType,
pub body: Box<Expr>,
@@ -310,7 +310,7 @@
pub attrs: Vec<Attribute>,
pub path: Path,
pub brace_token: token::Brace,
- pub fields: Delimited<FieldValue, Token![,]>,
+ pub fields: Punctuated<FieldValue, Token![,]>,
pub dot2_token: Option<Token![..]>,
pub rest: Option<Box<Expr>>,
}),
@@ -503,7 +503,7 @@
pub struct MethodTurbofish {
pub colon2_token: Token![::],
pub lt_token: Token![<],
- pub args: Delimited<GenericMethodArgument, Token![,]>,
+ pub args: Punctuated<GenericMethodArgument, Token![,]>,
pub gt_token: Token![>],
}
}
@@ -620,7 +620,7 @@
pub Struct(PatStruct {
pub path: Path,
pub brace_token: token::Brace,
- pub fields: Delimited<FieldPat, Token![,]>,
+ pub fields: Punctuated<FieldPat, Token![,]>,
pub dot2_token: Option<Token![..]>,
}),
@@ -646,10 +646,10 @@
/// 0 <= position <= subpats.len()
pub Tuple(PatTuple {
pub paren_token: token::Paren,
- pub front: Delimited<Pat, Token![,]>,
+ pub front: Punctuated<Pat, Token![,]>,
pub dot2_token: Option<Token![..]>,
pub comma_token: Option<Token![,]>,
- pub back: Delimited<Pat, Token![,]>,
+ pub back: Punctuated<Pat, Token![,]>,
}),
/// A `box` pattern
pub Box(PatBox {
@@ -675,11 +675,11 @@
/// `[a, b, i.., y, z]` is represented as:
pub Slice(PatSlice {
pub bracket_token: token::Bracket,
- pub front: Delimited<Pat, Token![,]>,
+ pub front: Punctuated<Pat, Token![,]>,
pub middle: Option<Box<Pat>>,
pub dot2_token: Option<Token![..]>,
pub comma_token: Option<Token![,]>,
- pub back: Delimited<Pat, Token![,]>,
+ pub back: Punctuated<Pat, Token![,]>,
}),
/// A macro pattern; pre-expansion
pub Macro(PatMacro {
@@ -731,7 +731,7 @@
/// ```
pub struct Arm {
pub attrs: Vec<Attribute>,
- pub pats: Delimited<Pat, Token![|]>,
+ pub pats: Punctuated<Pat, Token![|]>,
pub guard: Option<(Token![if], Box<Expr>)>,
pub rocket_token: Token![=>],
pub body: Box<Expr>,
@@ -1436,7 +1436,7 @@
#[cfg(feature = "full")]
impl Synom for ExprArray {
named!(parse -> Self, do_parse!(
- elems: brackets!(Delimited::parse_terminated) >>
+ elems: brackets!(Punctuated::parse_terminated) >>
(ExprArray {
attrs: Vec::new(),
bracket_token: elems.0,
@@ -1449,8 +1449,8 @@
}
}
- named!(and_call -> (token::Paren, Delimited<Expr, Token![,]>),
- parens!(Delimited::parse_terminated));
+ named!(and_call -> (token::Paren, Punctuated<Expr, Token![,]>),
+ parens!(Punctuated::parse_terminated));
#[cfg(feature = "full")]
named!(and_method_call -> ExprMethodCall, do_parse!(
@@ -1459,10 +1459,10 @@
turbofish: option!(tuple!(
punct!(::),
punct!(<),
- call!(Delimited::parse_terminated),
+ call!(Punctuated::parse_terminated),
punct!(>)
)) >>
- args: parens!(Delimited::parse_terminated) >>
+ args: parens!(Punctuated::parse_terminated) >>
({
ExprMethodCall {
attrs: Vec::new(),
@@ -1498,7 +1498,7 @@
#[cfg(feature = "full")]
impl Synom for ExprTuple {
named!(parse -> Self, do_parse!(
- elems: parens!(Delimited::parse_terminated) >>
+ elems: parens!(Punctuated::parse_terminated) >>
(ExprTuple {
attrs: Vec::new(),
elems: elems.1,
@@ -1691,7 +1691,7 @@
impl Synom for Arm {
named!(parse -> Self, do_parse!(
attrs: many0!(Attribute::parse_outer) >>
- pats: call!(Delimited::parse_separated_nonempty) >>
+ pats: call!(Punctuated::parse_separated_nonempty) >>
guard: option!(tuple!(keyword!(if), syn!(Expr))) >>
rocket: punct!(=>) >>
body: do_parse!(
@@ -1726,7 +1726,7 @@
named!(expr_closure(allow_struct: bool) -> Expr, do_parse!(
capture: option!(keyword!(move)) >>
or1: punct!(|) >>
- inputs: call!(Delimited::parse_terminated_with, fn_arg) >>
+ inputs: call!(Punctuated::parse_terminated_with, fn_arg) >>
or2: punct!(|) >>
ret_and_body: alt!(
do_parse!(
@@ -1883,7 +1883,7 @@
named!(parse -> Self, do_parse!(
path: syn!(Path) >>
data: braces!(do_parse!(
- fields: call!(Delimited::parse_terminated) >>
+ fields: call!(Punctuated::parse_terminated) >>
base: option!(cond!(fields.empty_or_trailing(), do_parse!(
dots: punct!(..) >>
base: syn!(Expr) >>
@@ -2291,7 +2291,7 @@
named!(parse -> Self, do_parse!(
path: syn!(Path) >>
data: braces!(do_parse!(
- fields: call!(Delimited::parse_terminated) >>
+ fields: call!(Punctuated::parse_terminated) >>
base: option!(cond!(fields.empty_or_trailing(), punct!(..))) >>
(fields, base)
)) >>
@@ -2403,7 +2403,7 @@
impl Synom for PatTuple {
named!(parse -> Self, do_parse!(
data: parens!(do_parse!(
- front: call!(Delimited::parse_terminated) >>
+ front: call!(Punctuated::parse_terminated) >>
dotdot: option!(cond_reduce!(front.empty_or_trailing(),
tuple!(punct!(..), option!(punct!(,)))
)) >>
@@ -2411,7 +2411,7 @@
Some((_, Some(_))) => true,
_ => false,
},
- Delimited::parse_terminated) >>
+ Punctuated::parse_terminated) >>
(front, dotdot, back)
)) >>
({
@@ -2512,7 +2512,7 @@
impl Synom for PatSlice {
named!(parse -> Self, map!(
brackets!(do_parse!(
- before: call!(Delimited::parse_terminated) >>
+ before: call!(Punctuated::parse_terminated) >>
middle: option!(do_parse!(
dots: punct!(..) >>
trailing: option!(punct!(,)) >>
@@ -2523,13 +2523,13 @@
Some((_, ref trailing)) => trailing.is_some(),
_ => false,
},
- Delimited::parse_terminated
+ Punctuated::parse_terminated
) >>
(before, middle, after)
)),
|(brackets, (before, middle, after))| {
- let mut before: Delimited<Pat, Token![,]> = before;
- let after: Option<Delimited<Pat, Token![,]>> = after;
+ let mut before: Punctuated<Pat, Token![,]> = before;
+ let after: Option<Punctuated<Pat, Token![,]>> = after;
let middle: Option<(Token![..], Option<Token![,]>)> = middle;
PatSlice {
dot2_token: middle.as_ref().map(|m| Token.0)),
@@ -2868,8 +2868,8 @@
tokens.append_all(self.attrs.outer());
self.capture.to_tokens(tokens);
self.or1_token.to_tokens(tokens);
- for item in self.inputs.iter() {
- match **item.item() {
+ for input in self.inputs.iter() {
+ match **input.item() {
FnArg::Captured(ArgCaptured {
ref pat,
ty: Type::Infer(_),
@@ -2877,9 +2877,9 @@
}) => {
pat.to_tokens(tokens);
}
- _ => item.item().to_tokens(tokens),
+ _ => input.item().to_tokens(tokens),
}
- item.delimiter().to_tokens(tokens);
+ input.punct().to_tokens(tokens);
}
self.or2_token.to_tokens(tokens);
self.output.to_tokens(tokens);