Skip to content

Commit 88f98c2

Browse files
Implement RTN support in rustfmt
1 parent 51df533 commit 88f98c2

File tree

2 files changed

+29
-15
lines changed

2 files changed

+29
-15
lines changed

src/types.rs

+19-15
Original file line numberDiff line numberDiff line change
@@ -484,21 +484,25 @@ fn rewrite_generic_args(
484484
span: Span,
485485
) -> Option<String> {
486486
match gen_args {
487-
ast::GenericArgs::AngleBracketed(ref data) if !data.args.is_empty() => {
488-
let args = data
489-
.args
490-
.iter()
491-
.map(|x| match x {
492-
ast::AngleBracketedArg::Arg(generic_arg) => {
493-
SegmentParam::from_generic_arg(generic_arg)
494-
}
495-
ast::AngleBracketedArg::Constraint(constraint) => {
496-
SegmentParam::Binding(constraint)
497-
}
498-
})
499-
.collect::<Vec<_>>();
487+
ast::GenericArgs::AngleBracketed(ref data) => {
488+
if data.args.is_empty() {
489+
Some("".to_owned())
490+
} else {
491+
let args = data
492+
.args
493+
.iter()
494+
.map(|x| match x {
495+
ast::AngleBracketedArg::Arg(generic_arg) => {
496+
SegmentParam::from_generic_arg(generic_arg)
497+
}
498+
ast::AngleBracketedArg::Constraint(constraint) => {
499+
SegmentParam::Binding(constraint)
500+
}
501+
})
502+
.collect::<Vec<_>>();
500503

501-
overflow::rewrite_with_angle_brackets(context, "", args.iter(), shape, span)
504+
overflow::rewrite_with_angle_brackets(context, "", args.iter(), shape, span)
505+
}
502506
}
503507
ast::GenericArgs::Parenthesized(ref data) => format_function_type(
504508
data.inputs.iter().map(|x| &**x),
@@ -508,7 +512,7 @@ fn rewrite_generic_args(
508512
context,
509513
shape,
510514
),
511-
_ => Some("".to_owned()),
515+
ast::GenericArgs::ParenthesizedElided(..) => Some("(..)".to_owned()),
512516
}
513517
}
514518

tests/target/return-type-notation.rs

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
fn rtn()
2+
where
3+
T: Trait<method(..): Send + 'static>,
4+
T::method(..): Send + 'static,
5+
{
6+
}
7+
8+
fn test() {
9+
let x: T::method(..);
10+
}

0 commit comments

Comments
 (0)