diff options
| author | Michael Goulet <michael@errs.io> | 2024-06-28 14:18:36 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-06-28 14:20:44 -0400 |
| commit | 99365a5a7ace1092852784c2fa71b7fd5ef25e5d (patch) | |
| tree | e5acba49c0c94bdf8e54d6199c71e5780dbdaae4 | |
| parent | 82b4af7511a430e53d2ed554771754552e5ecca8 (diff) | |
| download | rust-99365a5a7ace1092852784c2fa71b7fd5ef25e5d.tar.gz rust-99365a5a7ace1092852784c2fa71b7fd5ef25e5d.zip | |
Implement RTN support in rustfmt
| -rw-r--r-- | src/tools/rustfmt/src/types.rs | 34 | ||||
| -rw-r--r-- | src/tools/rustfmt/tests/target/return-type-notation.rs | 10 |
2 files changed, 29 insertions, 15 deletions
diff --git a/src/tools/rustfmt/src/types.rs b/src/tools/rustfmt/src/types.rs index c0bf9482b11..c826547e9d0 100644 --- a/src/tools/rustfmt/src/types.rs +++ b/src/tools/rustfmt/src/types.rs @@ -484,21 +484,25 @@ fn rewrite_generic_args( span: Span, ) -> Option<String> { match gen_args { - ast::GenericArgs::AngleBracketed(ref data) if !data.args.is_empty() => { - let args = data - .args - .iter() - .map(|x| match x { - ast::AngleBracketedArg::Arg(generic_arg) => { - SegmentParam::from_generic_arg(generic_arg) - } - ast::AngleBracketedArg::Constraint(constraint) => { - SegmentParam::Binding(constraint) - } - }) - .collect::<Vec<_>>(); + ast::GenericArgs::AngleBracketed(ref data) => { + if data.args.is_empty() { + Some("".to_owned()) + } else { + let args = data + .args + .iter() + .map(|x| match x { + ast::AngleBracketedArg::Arg(generic_arg) => { + SegmentParam::from_generic_arg(generic_arg) + } + ast::AngleBracketedArg::Constraint(constraint) => { + SegmentParam::Binding(constraint) + } + }) + .collect::<Vec<_>>(); - overflow::rewrite_with_angle_brackets(context, "", args.iter(), shape, span) + overflow::rewrite_with_angle_brackets(context, "", args.iter(), shape, span) + } } ast::GenericArgs::Parenthesized(ref data) => format_function_type( data.inputs.iter().map(|x| &**x), @@ -508,7 +512,7 @@ fn rewrite_generic_args( context, shape, ), - _ => Some("".to_owned()), + ast::GenericArgs::ParenthesizedElided(..) => Some("(..)".to_owned()), } } diff --git a/src/tools/rustfmt/tests/target/return-type-notation.rs b/src/tools/rustfmt/tests/target/return-type-notation.rs new file mode 100644 index 00000000000..0f26e7e272b --- /dev/null +++ b/src/tools/rustfmt/tests/target/return-type-notation.rs @@ -0,0 +1,10 @@ +fn rtn() +where + T: Trait<method(..): Send + 'static>, + T::method(..): Send + 'static, +{ +} + +fn test() { + let x: T::method(..); +} |
