Use the span of variadic ... as the span of trailing comma
diff --git a/src/token.rs b/src/token.rs
index cfff6f6..8c2f2d0 100644
--- a/src/token.rs
+++ b/src/token.rs
@@ -32,6 +32,12 @@
#[$doc]
pub struct $name(pub [Span; $len]);
+ impl $name {
+ pub fn new(span: Span) -> Self {
+ $name([span; $len])
+ }
+ }
+
#[cfg(feature = "extra-traits")]
impl ::std::fmt::Debug for $name {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
diff --git a/src/ty.rs b/src/ty.rs
index 201b257..05ef54c 100644
--- a/src/ty.rs
+++ b/src/ty.rs
@@ -1105,10 +1105,13 @@
self.fn_token.to_tokens(tokens);
self.paren_token.surround(tokens, |tokens| {
self.inputs.to_tokens(tokens);
- if self.variadic.is_some() && !self.inputs.empty_or_trailing() {
- <Token![,]>::default().to_tokens(tokens);
+ if let Some(variadic) = self.variadic {
+ if !self.inputs.empty_or_trailing() {
+ let span = variadic.0[0];
+ <Token![,]>::new(span).to_tokens(tokens);
+ }
+ variadic.to_tokens(tokens);
}
- self.variadic.to_tokens(tokens);
});
self.output.to_tokens(tokens);
}