diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-01-06 23:15:16 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-06 23:15:16 +0100 | 
| commit | 1a8f69826c75a65acb018a183610e4b1cb32c46d (patch) | |
| tree | ea5db60f5bc134d89e3ce5c5961b4ca4d7cd7711 | |
| parent | 0604cf5fd8aacb5eee6a627066e11ca3b5f48cf2 (diff) | |
| parent | a24e238bdf07b2e59f5d3af376647742a6d7f05a (diff) | |
| download | rust-1a8f69826c75a65acb018a183610e4b1cb32c46d.tar.gz rust-1a8f69826c75a65acb018a183610e4b1cb32c46d.zip | |
Rollup merge of #92417 - dtolnay:printimpl, r=jackh726
Fix spacing and ordering of words in pretty printed Impl
Follow-up to #92238 fixing one of the FIXMEs.
```rust
macro_rules! repro {
    ($item:item) => {
        stringify!($item)
    };
}
fn main() {
    println!("{}", repro!(impl<T> Struct<T> {}));
    println!("{}", repro!(impl<T> const Trait for T {}));
}
```
Before: `impl <T> Struct<T> {}`
After: `impl<T> Struct<T> {}`
Before: `impl const <T> Trait for T {}` :crying_cat_face:
After: `impl<T> const Trait for T {}`
| -rw-r--r-- | compiler/rustc_ast_pretty/src/pprust/state.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/macros/stringify.rs | 8 | 
2 files changed, 13 insertions, 4 deletions
| diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs index 91fa4595241..3267945f427 100644 --- a/compiler/rustc_ast_pretty/src/pprust/state.rs +++ b/compiler/rustc_ast_pretty/src/pprust/state.rs @@ -1287,14 +1287,17 @@ impl<'a> State<'a> { self.print_visibility(&item.vis); self.print_defaultness(defaultness); self.print_unsafety(unsafety); - self.word_nbsp("impl"); - self.print_constness(constness); + self.word("impl"); - if !generics.params.is_empty() { + if generics.params.is_empty() { + self.nbsp(); + } else { self.print_generic_params(&generics.params); self.space(); } + self.print_constness(constness); + if let ast::ImplPolarity::Negative(_) = polarity { self.word("!"); } diff --git a/src/test/ui/macros/stringify.rs b/src/test/ui/macros/stringify.rs index 90983f35a5e..820dcdb9394 100644 --- a/src/test/ui/macros/stringify.rs +++ b/src/test/ui/macros/stringify.rs @@ -603,7 +603,7 @@ fn test_item() { stringify_item!( impl<T> Struct<T> {} ), - "impl <T> Struct<T> {}", // FIXME + "impl<T> Struct<T> {}", ); assert_eq!( stringify_item!( @@ -613,6 +613,12 @@ fn test_item() { ); assert_eq!( stringify_item!( + impl<T> const Trait for T {} + ), + "impl<T> const Trait for T {}", + ); + assert_eq!( + stringify_item!( impl ~const Struct {} ), "impl Struct {}", // FIXME | 
