Use dot tokens to track whether FnDecl is variadic
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 535683d..7b976d7 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1409,7 +1409,6 @@
output: _visitor.fold_return_type(_i . output),
generics: _visitor.fold_generics(_i . generics),
variadic: _i . variadic,
- dot_tokens: _i . dot_tokens,
}
}
# [ cfg ( feature = "full" ) ]
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 1b45f60..ead15c9 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -1102,7 +1102,6 @@
_visitor.visit_return_type(& _i . output);
_visitor.visit_generics(& _i . generics);
// Skipped field _i . variadic;
- // Skipped field _i . dot_tokens;
}
# [ cfg ( feature = "full" ) ]
pub fn visit_foreign_item<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ForeignItem) {
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 310bdc6..38cc19e 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -1102,7 +1102,6 @@
_visitor.visit_return_type_mut(& mut _i . output);
_visitor.visit_generics_mut(& mut _i . generics);
// Skipped field _i . variadic;
- // Skipped field _i . dot_tokens;
}
# [ cfg ( feature = "full" ) ]
pub fn visit_foreign_item_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ForeignItem) {
diff --git a/src/item.rs b/src/item.rs
index 97ba25b..57c9400 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -443,8 +443,7 @@
pub inputs: Delimited<FnArg, Token![,]>,
pub output: ReturnType,
pub generics: Generics,
- pub variadic: bool,
- pub dot_tokens: Option<Token![...]>,
+ pub variadic: Option<Token![...]>,
}
}
@@ -732,12 +731,11 @@
unsafety: unsafety,
abi: abi,
decl: Box::new(FnDecl {
- dot_tokens: None,
fn_token: fn_,
paren_token: inputs.1,
inputs: inputs.0,
output: ret,
- variadic: false,
+ variadic: None,
generics: Generics {
where_clause: where_clause,
.. generics
@@ -875,8 +873,7 @@
fn_token: fn_,
paren_token: parens,
inputs: inputs,
- variadic: variadic.is_some(),
- dot_tokens: variadic,
+ variadic: variadic,
output: ret,
generics: Generics {
where_clause: where_clause,
@@ -1100,10 +1097,9 @@
decl: FnDecl {
inputs: inputs.0,
output: ret,
- variadic: false,
fn_token: fn_,
paren_token: inputs.1,
- dot_tokens: None,
+ variadic: None,
generics: Generics {
where_clause: where_clause,
.. generics
@@ -1264,12 +1260,11 @@
paren_token: inputs.1,
inputs: inputs.0,
output: ret,
- variadic: false,
generics: Generics {
where_clause: where_clause,
.. generics
},
- dot_tokens: None,
+ variadic: None,
},
},
block: Block {
@@ -1775,13 +1770,10 @@
self.0.generics.to_tokens(tokens);
self.0.paren_token.surround(tokens, |tokens| {
self.0.inputs.to_tokens(tokens);
-
- if self.0.variadic {
- if !self.0.inputs.empty_or_trailing() {
- <Token![,]>::default().to_tokens(tokens);
- }
- TokensOrDefault(&self.0.dot_tokens).to_tokens(tokens);
+ if self.0.variadic.is_some() && !self.0.inputs.empty_or_trailing() {
+ <Token![,]>::default().to_tokens(tokens);
}
+ self.0.variadic.to_tokens(tokens);
});
self.0.output.to_tokens(tokens);
self.0.generics.where_clause.to_tokens(tokens);