diff options
| author | bors <bors@rust-lang.org> | 2024-01-06 15:50:44 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-01-06 15:50:44 +0000 |
| commit | b6a8c762eed0ae0383658c38d65cb91bbd9800a1 (patch) | |
| tree | f8b0eccaad8e13a182a0d397b0ed5e37b8119d4d /src/doc | |
| parent | 9212108a9b32cc381995cf509dd2627123c11a25 (diff) | |
| parent | 5f0f02810684e1d08c5d1a38acff79f5300086f0 (diff) | |
| download | rust-b6a8c762eed0ae0383658c38d65cb91bbd9800a1.tar.gz rust-b6a8c762eed0ae0383658c38d65cb91bbd9800a1.zip | |
Auto merge of #119662 - matthiaskrgr:rollup-ehofh5n, r=matthiaskrgr
Rollup of 9 pull requests
Successful merges:
- #118194 (rustdoc: search for tuples and unit by type with `()`)
- #118781 (merge core_panic feature into panic_internals)
- #119486 (pass allow-{dirty,staged} to clippy)
- #119591 (rustc_mir_transform: Make DestinationPropagation stable for queries)
- #119595 (Fixed ambiguity in hint.rs)
- #119624 (rustc_span: More consistent span combination operations)
- #119653 (compiler: update Fuchsia sanitizer support.)
- #119655 (Remove ignore-stage1 that was added when changing error count msg)
- #119661 (Strip lld-wrapper binaries)
r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'src/doc')
| -rw-r--r-- | src/doc/rustdoc/src/read-documentation/search.md | 47 | ||||
| -rw-r--r-- | src/doc/unstable-book/src/library-features/core-panic.md | 5 |
2 files changed, 36 insertions, 16 deletions
diff --git a/src/doc/rustdoc/src/read-documentation/search.md b/src/doc/rustdoc/src/read-documentation/search.md index 1f45bd6c6b8..b5f4060f059 100644 --- a/src/doc/rustdoc/src/read-documentation/search.md +++ b/src/doc/rustdoc/src/read-documentation/search.md @@ -147,15 +147,38 @@ will match these queries: * `Read -> Result<Vec<u8>, Error>` * `Read -> Result<Error, Vec>` * `Read -> Result<Vec<u8>>` +* `Read -> u8` But it *does not* match `Result<Vec, u8>` or `Result<u8<Vec>>`. -Function signature searches also support arrays and slices. The explicit name -`primitive:slice<u8>` and `primitive:array<u8>` can be used to match a slice -or array of bytes, while square brackets `[u8]` will match either one. Empty -square brackets, `[]`, will match any slice or array regardless of what -it contains, while a slice with a type parameter, like `[T]`, will only match -functions that actually operate on generic slices. +### Primitives with Special Syntax + +| Shorthand | Explicit names | +| --------- | ------------------------------------------------ | +| `[]` | `primitive:slice` and/or `primitive:array` | +| `[T]` | `primitive:slice<T>` and/or `primitive:array<T>` | +| `()` | `primitive:unit` and/or `primitive:tuple` | +| `(T)` | `T` | +| `(T,)` | `primitive:tuple<T>` | +| `!` | `primitive:never` | + +When searching for `[]`, Rustdoc will return search results with either slices +or arrays. If you know which one you want, you can force it to return results +for `primitive:slice` or `primitive:array` using the explicit name syntax. +Empty square brackets, `[]`, will match any slice or array regardless of what +it contains, or an item type can be provided, such as `[u8]` or `[T]`, to +explicitly find functions that operate on byte slices or generic slices, +respectively. + +A single type expression wrapped in parens is the same as that type expression, +since parens act as the grouping operator. If they're empty, though, they will +match both `unit` and `tuple`, and if there's more than one type (or a trailing +or leading comma) it is the same as `primitive:tuple<...>`. + +However, since items can be left out of the query, `(T)` will still return +results for types that match tuples, even though it also matches the type on +its own. That is, `(u32)` matches `(u32,)` for the exact same reason that it +also matches `Result<u32, Error>`. ### Limitations and quirks of type-based search @@ -188,11 +211,10 @@ Most of these limitations should be addressed in future version of Rustdoc. that you don't want a type parameter, you can force it to match something else by giving it a different prefix like `struct:T`. - * It's impossible to search for references, pointers, or tuples. The + * It's impossible to search for references or pointers. The wrapped types can be searched for, so a function that takes `&File` can be found with `File`, but you'll get a parse error when typing an `&` - into the search field. Similarly, `Option<(T, U)>` can be matched with - `Option<T, U>`, but `(` will give a parse error. + into the search field. * Searching for lifetimes is not supported. @@ -216,8 +238,9 @@ Item filters can be used in both name-based and type signature-based searches. ```text ident = *(ALPHA / DIGIT / "_") path = ident *(DOUBLE-COLON ident) [!] -slice = OPEN-SQUARE-BRACKET [ nonempty-arg-list ] CLOSE-SQUARE-BRACKET -arg = [type-filter *WS COLON *WS] (path [generics] / slice / [!]) +slice-like = OPEN-SQUARE-BRACKET [ nonempty-arg-list ] CLOSE-SQUARE-BRACKET +tuple-like = OPEN-PAREN [ nonempty-arg-list ] CLOSE-PAREN +arg = [type-filter *WS COLON *WS] (path [generics] / slice-like / tuple-like / [!]) type-sep = COMMA/WS *(COMMA/WS) nonempty-arg-list = *(type-sep) arg *(type-sep arg) *(type-sep) generic-arg-list = *(type-sep) arg [ EQUAL arg ] *(type-sep arg [ EQUAL arg ]) *(type-sep) @@ -263,6 +286,8 @@ OPEN-ANGLE-BRACKET = "<" CLOSE-ANGLE-BRACKET = ">" OPEN-SQUARE-BRACKET = "[" CLOSE-SQUARE-BRACKET = "]" +OPEN-PAREN = "(" +CLOSE-PAREN = ")" COLON = ":" DOUBLE-COLON = "::" QUOTE = %x22 diff --git a/src/doc/unstable-book/src/library-features/core-panic.md b/src/doc/unstable-book/src/library-features/core-panic.md deleted file mode 100644 index c197588404c..00000000000 --- a/src/doc/unstable-book/src/library-features/core-panic.md +++ /dev/null @@ -1,5 +0,0 @@ -# `core_panic` - -This feature is internal to the Rust compiler and is not intended for general use. - ------------------------- |
