Noah Lev
c90a5b2019
rustdoc-json: Rename typedef to type alias
2023-08-21 14:02:34 -07:00
Noah Lev
062d247cd7
rustdoc: Rename clean
items from typedef to type alias
2023-08-21 13:56:22 -07:00
Noah Lev
ea9e442222
rustdoc: Rename "Type Definition" to "Type Alias"
...
This matches the name used by the Rust Reference [1], which is also what
people usually call these items.
[1]: https://doc.rust-lang.org/reference/items/type-aliases.html
2023-08-21 12:53:39 -07:00
Guillaume Gomez
16b34bfae3
Use more named format args
2023-08-16 16:35:23 +02:00
Guillaume Gomez
a1a94b1c0f
Improve code readability by moving fmt args directly into the string
2023-08-16 16:35:23 +02:00
Guillaume Gomez
148a0c1673
Remove some unneeded clone()
calls
2023-07-30 13:26:36 +02:00
Guillaume Gomez
b7871e5537
Group write
calls when possible and use new format args
2023-07-29 14:40:00 +02:00
León Orell Valerian Liehr
a011dd9dac
Render generic const items in rustdoc
2023-07-28 22:21:42 +02:00
León Orell Valerian Liehr
5924043b86
rustdoc: handle cross-crate RPITITs correctly
2023-07-22 12:20:17 +02:00
Matthias Krüger
80f749dfa0
Rollup merge of #110765 - wackbyte:fix-defaultness-position, r=fmease,GuillaumeGomez
...
rustdoc: fix position of `default` in method rendering
With the following code:
```rs
#![feature(specialization)]
pub trait A {
unsafe fn a();
}
impl A for () {
default unsafe fn a() {}
}
```
rustdoc would render the `impl` of `a` as
```rs
unsafe default fn a()
```
which is inconsistent with the actual position of `default`.
This PR fixes this issue.
2023-07-20 17:19:32 +02:00
Michael Howell
34bc8fbea3
rustdoc: use src
consistently over source
in code
...
The CSS uses an inconsistent mix of both. This commit switches
it to always use `src`.
2023-07-14 16:38:01 -07:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
wackbyte
c67aea7fdd
rustdoc: fix position of default
in method rendering
2023-06-23 18:39:31 -04:00
Matthias Krüger
3feee9f1f2
Rollup merge of #112927 - GuillaumeGomez:where-clause-indent, r=notriddle
...
Fix indentation for where clause in rustdoc pages
Screenshot of the bug:

I used this opportunity to clarify the code a bit because some weird things were going on.
r? ````@notriddle````
2023-06-23 13:18:13 +02:00
Guillaume Gomez
9202caaec5
Fix indentation for where clause in rustdoc pages
2023-06-22 17:38:19 +02:00
Matthias Krüger
3ba66df643
Rollup merge of #112906 - fmease:rustdoc-render-assoc-ty-body-before-where-clause, r=notriddle
...
rustdoc: render the body of associated types before the where-clause
Fixes #112903 .
2023-06-22 06:29:33 +02:00
León Orell Valerian Liehr
b866113d19
rustdoc: render the assoc ty body before the where-clause
2023-06-21 21:53:55 +02:00
Guillaume Gomez
6f48526963
Fix union fields display
2023-06-21 17:25:19 +02:00
TumoiYorozu
7b55f08516
Fix URL encoding of % sign in Rust Doc.
2023-06-13 20:14:50 +09:00
Guillaume Gomez
810c5176ad
Revert "List matching impls on type aliases"
...
This reverts commit 4b1d13d984
.
2023-06-12 11:27:56 +02:00
Guillaume Gomez
4b1d13d984
List matching impls on type aliases
2023-06-09 10:36:21 +02:00
Guillaume Gomez
aabffef06d
Rollup merge of #112243 - GuillaumeGomez:rm-unneeded-buffer-creations, r=notriddle
...
Remove unneeded `Buffer` allocations when `&mut fmt::Write` can be used directly
With the recent changes, `wrap_item` can now directly take `&mut Write`, which makes some `Buffer` creations unneeded.
r? `@notriddle`
2023-06-05 17:02:50 +02:00
Guillaume Gomez
48c46f275b
Move write! arguments directly into the string
2023-06-05 15:31:18 +02:00
bors
51f714c8c5
Auto merge of #110945 - wackbyte:doc-vis-on-inherent-assoc-types, r=jsha
...
rustdoc: render visibility on associated types
This should only affect inherent associated types (#8995 ).
2023-06-05 04:54:21 +00:00
Guillaume Gomez
5c77a0d7a7
Remove unneeded Buffer
allocations when &mut fmt::Write
can be used directly
2023-06-03 17:23:02 +02:00
Michael Howell
1862fcb1df
rustdoc: simplify clean
by removing FnRetTy
...
The default fn ret ty is always unit. Just use that.
Looking back at the time when `FnRetTy` (then called
`FunctionRetTy`) was first added to rustdoc, it seems to originally
be there because `-> !` was a special form: the never type didn't
exist back then.
eb01b17b06 (diff-384affc1b4190940f114f3fcebbf969e7e18657a71ef9001da6b223a036687d9L921-L924)
2023-05-30 12:22:14 -07:00
Vadim Petrochenkov
4082053b00
rustdoc: Cleanup doc string collapsing
2023-05-22 19:35:35 +03:00
Guillaume Gomez
54f882e478
Add missing backslash in HTML string
2023-05-17 11:43:13 +02:00
León Orell Valerian Liehr
61e1eda6db
IAT: Rustdoc integration
2023-05-04 16:59:11 +02:00
Nicholas Nethercote
6b62f37402
Restrict From<S>
for {D,Subd}iagnosticMessage
.
...
Currently a `{D,Subd}iagnosticMessage` can be created from any type that
impls `Into<String>`. That includes `&str`, `String`, and `Cow<'static,
str>`, which are reasonable. It also includes `&String`, which is pretty
weird, and results in many places making unnecessary allocations for
patterns like this:
```
self.fatal(&format!(...))
```
This creates a string with `format!`, takes a reference, passes the
reference to `fatal`, which does an `into()`, which clones the
reference, doing a second allocation. Two allocations for a single
string, bleh.
This commit changes the `From` impls so that you can only create a
`{D,Subd}iagnosticMessage` from `&str`, `String`, or `Cow<'static,
str>`. This requires changing all the places that currently create one
from a `&String`. Most of these are of the `&format!(...)` form
described above; each one removes an unnecessary static `&`, plus an
allocation when executed. There are also a few places where the existing
use of `&String` was more reasonable; these now just use `clone()` at
the call site.
As well as making the code nicer and more efficient, this is a step
towards possibly using `Cow<'static, str>` in
`{D,Subd}iagnosticMessage::{Str,Eager}`. That would require changing
the `From<&'a str>` impls to `From<&'static str>`, which is doable, but
I'm not yet sure if it's worthwhile.
2023-05-03 08:44:39 +10:00
Matthias Krüger
549b3a13a1
Rollup merge of #110983 - GuillaumeGomez:foreign-repr, r=notriddle
...
rustdoc: Get `repr` information through `AdtDef` for foreign items
As suggested by `@notriddle,` this approach works too. The only downside is that the display of the original attribute isn't kept, but I think it's an acceptable downside.
r? `@notriddle`
2023-04-30 01:14:59 +02:00
Guillaume Gomez
b778688f91
Unify attributes retrieval for JSON and HTML rendering
2023-04-29 23:36:48 +02:00
Guillaume Gomez
61b6f65884
Get repr
information through AdtDef
for foreign items
2023-04-29 22:53:10 +02:00
Michael Howell
2299ba1ca2
rustdoc: fix weird margins between Deref impl items
...
In the old setup, if the dereffed-to item has multiple impl blocks,
each one gets its own `div.impl-items` in the section, but there
are no headers separating them. Since the last method in a
`div.impl-items` has no bottom margin, and there are no margins
between these divs, there is no margin between the last method
of one impl and the first method of the following impl.
This patch fixes it by simplifying the HTML. Each Deref block gets
exactly one `div.impl-items`, no matter how many impl blocks it
actually has.
2023-04-28 13:16:10 -07:00
wackbyte
db5d3f04c6
rustdoc: render visibility on associated types
...
This should only affect inherent associated types.
2023-04-28 08:24:30 -04:00
Yuki Okushi
684bdf87f4
Rollup merge of #109949 - notriddle:notriddle/type-layout, r=jsha
...
rustdoc: migrate `document_type_layout` to askama
2023-04-22 10:33:56 +09:00
Michael Howell
2b728c1f85
rustdoc: factor document_type_layout
into its own module
2023-04-21 11:04:44 -07:00
KaDiWa
ad2b34d0e3
remove some unneeded imports
2023-04-12 19:27:18 +02:00
Michael Howell
c325fda0bf
rustdoc: migrate item_union
to an Askama template
2023-04-05 07:49:30 -07:00
Michael Howell
19f9f658d6
rustdoc: migrate document functions to return a Display
2023-04-03 17:17:39 -07:00
Michael Howell
94faa5c739
rustdoc: convert render_attributes_in_pre to return a Display
2023-04-03 15:42:01 -07:00
Matthias Krüger
0392e2996e
Rollup merge of #108954 - notriddle:notriddle/notable-trait-generic, r=camelid
...
rustdoc: handle generics better when matching notable traits
This commit makes the `clean::Type::is_same` non-commutative (renaming it `is_doc_subtype_of`), so that a generic `impl` matches a concrete return, but a generic return does not match a concrete `impl`. It makes slice and vector Write for `u8` not match on every generic return value.
Fixes #100322
Fixes #55082
Preview:
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/vec/struct.Vec.html#method.new
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/vec/struct.Vec.html#method.from-12
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/iter/trait.Iterator.html#method.intersperse_with
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/string/struct.String.html#method.as_bytes
2023-03-22 22:44:39 +01:00
Michael Howell
86179c4549
rustdoc: rename Type::is_same
to is_doc_subtype_of
2023-03-12 17:45:15 -07:00
Matthias Krüger
25794194fa
Rollup merge of #108784 - clubby789:askama-sidebar, r=jsha,GuillaumeGomez
...
rustdoc: Migrate sidebar rendering to Askama
cc #108757
Renders the sidebar for documentation using an Askama template
2023-03-11 12:55:43 +01:00
Matthias Krüger
949c553100
Rollup merge of #108757 - clubby789:askama-move, r=notriddle,jsha,GuillaumeGomez
...
rustdoc: Migrate `document_item_info` to Askama
https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/rustdoc.20allocations.20are.20slow
Hoping to piece-by-piece migrate things to template. Had a few failed attempts at more complex parts of the code, so this is just a start.
2023-03-11 12:55:42 +01:00
Matthias Krüger
8596751f3b
Rollup merge of #107629 - pitaj:rustdoc-search-deprecated, r=jsha
...
rustdoc: sort deprecated items lower in search
closes #98759
### Screenshots
`i32::MAX` show sup above `std::i32::MAX` and `core::i32::MAX`

If just searching for `min`, the deprecated results show up far below other things:

one page later

~~And, as you can see, the "Deprecation planned" message shows up in the search results. The same is true for fully-deprecated items like `mem::uninitialized`:
~~
Edit: the deprecation message change was removed from this PR. Only the sorting is changed.
2023-03-11 12:55:41 +01:00
clubby789
2f166d1a15
Render doc sidebar using Askama
2023-03-10 20:21:45 +00:00
clubby789
bb37b600b3
Migrate document_item_info
to templates
2023-03-10 20:18:38 +00:00
Peter Jaszkowiak
d2e4b59e60
rustdoc: sort deprecated items lower in search
...
serialize `q` (`itemPaths`) sparsely
overall 4% reduction in search index size
2023-03-10 12:20:38 -07:00
Michael Howell
ee6b228b6a
rustdoc: handle generics better when matching notable traits
...
This commit makes the `clean::Type::is_same` non-commutative, so
that a generic `impl` matches a concrete return, but a generic return
does not match a concrete `impl`. It makes slice and vector Write
for `u8` not match on every generic return value.
2023-03-09 14:18:12 -07:00