Skip to content

Commit 2525a10

Browse files
authored
Merge pull request #1754 from dtolnay/precisecapture
Reorder precise captured params to print lifetimes before idents
2 parents b387249 + 9e125ce commit 2525a10

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/generics.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1338,7 +1338,26 @@ pub(crate) mod printing {
13381338
fn to_tokens(&self, tokens: &mut TokenStream) {
13391339
self.use_token.to_tokens(tokens);
13401340
self.lt_token.to_tokens(tokens);
1341-
self.params.to_tokens(tokens);
1341+
1342+
// Print lifetimes before types and consts, regardless of their
1343+
// order in self.params.
1344+
let mut trailing_or_empty = true;
1345+
for param in self.params.pairs() {
1346+
if let CapturedParam::Lifetime(_) = **param.value() {
1347+
param.to_tokens(tokens);
1348+
trailing_or_empty = param.punct().is_some();
1349+
}
1350+
}
1351+
for param in self.params.pairs() {
1352+
if let CapturedParam::Ident(_) = **param.value() {
1353+
if !trailing_or_empty {
1354+
<Token![,]>::default().to_tokens(tokens);
1355+
trailing_or_empty = true;
1356+
}
1357+
param.to_tokens(tokens);
1358+
}
1359+
}
1360+
13421361
self.gt_token.to_tokens(tokens);
13431362
}
13441363
}

0 commit comments

Comments
 (0)