Auto merge of #125086 - matthiaskrgr:rollup-xob4lof, r=matthiaskrgr · rust-lang/rust@ab14f94 (original) (raw)
`@@ -295,8 +295,18 @@ Prefer to use single-letter names for generic parameters.
`
295
295
``
296
296
`` These rules apply for where
clauses on any item.
``
297
297
``
298
``
`-
If immediately following a closing bracket of any kind, write the keyword
`
299
``
`` -
where
on the same line, with a space before it.
``
``
298
`+
If a where clause is short, and appears on a short one-line function
`
``
299
`` +
declaration with no body or on a short type with no =
, format it on
``
``
300
`+
the same line as the declaration:
`
``
301
+
``
302
```rust
``
303
`+
fn new(&self) -> Self where Self: Sized;
`
``
304
+
``
305
`+
type Item<'a>: SomeTrait where Self: 'a;
`
``
306
```
``
307
+
``
308
`+
Otherwise, if immediately following a closing bracket of any kind, write the
`
``
309
`` +
keyword where
on the same line, with a space before it.
``
300
310
``
301
311
`` Otherwise, put where
on a new line at the same indentation level. Put each
``
302
312
`` component of a where
clause on its own line, block-indented. Use a trailing
``
`@@ -347,7 +357,7 @@ where
`
347
357
```` ```
`348`
`358`
``
`349`
`359`
`` If a `where` clause is very short, prefer using an inline bound on the type
``
`350`
``
`-
parameter.
`
``
`360`
`+
parameter if possible.
`
`351`
`361`
``
`352`
`362`
`` If a component of a `where` clause does not fit and contains `+`, break it
``
`353`
`363`
`` before each `+` and block-indent the continuation lines. Put each bound on its
``
`@@ -421,9 +431,21 @@ Format associated types like type aliases. Where an associated type has a
`
`421`
`431`
`bound, put a space after the colon but not before:
`
`422`
`432`
``
`423`
`433`
```` ```rust
424
``
`-
pub type Foo: Bar;
`
``
434
`+
type Foo: Bar;
`
425
435
```` ```
`426`
`436`
``
``
`437`
`` +
If an associated type is short, has no `=`, and has a `where` clause with only
``
``
`438`
`` +
one entry, format the entire type declaration including the `where` clause on
``
``
`439`
`+
the same line if it fits:
`
``
`440`
`+`
``
`441`
```` +
```rust
``
442
`+
type Item<'a> where Self: 'a;
`
``
443
`+
type Item<'a>: PartialEq + Send where Self: 'a;
`
``
444
```
``
445
+
``
446
`` +
If the associated type has a =
, or if the where
clause contains multiple
``
``
447
`+
entries, format it across multiple lines as with a type alias.
`
``
448
+
427
449
`## extern items
`
428
450
``
429
451
`` When writing extern items (such as extern "C" fn
), always specify the ABI.
``