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
89b0956a9a
Fix display of attributes for enums
2023-04-29 22:53:10 +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
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
e6664c0681
rustdoc: remove unnecessary binding
2023-04-21 11:05:45 -07:00
Michael Howell
2b728c1f85
rustdoc: factor document_type_layout into its own module
2023-04-21 11:04:44 -07:00
Michael Howell
99e1cdb46f
rustdoc: get rid of redundant, nested let lines
2023-04-21 09:00:33 -07:00
Michael Howell
3a16db1bb4
rustdoc: create variants list outside of template
2023-04-18 11:14:39 -07:00
Michael Howell
5f9746b947
rustdoc: use a separate template for type layout size
2023-04-18 10:21:04 -07:00
Josh Soref
bb2f23c34f
Spelling librustdoc
...
* associated
* collected
* correspondence
* inlining
* into
* javascript
* multiline
* variadic
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-16 21:44:12 -04:00
KaDiWa
ad2b34d0e3
remove some unneeded imports
2023-04-12 19:27:18 +02:00
DaniPopes
b410f3f7ae
Fix typos in librustdoc
2023-04-10 21:02:29 +02:00
Michael Howell
08f204e17f
rustdoc: migrate document_type_layout to askama
2023-04-08 19:23:52 -07: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
Michael Howell
fc5de13d31
rustdoc: convert print_tuple_struct_fields to return a Display
2023-04-03 15:31:07 -07:00
Matthias Krüger
8ef3bf29fe
a couple clippy::complexity fixes
...
map_identity
filter_next
option_as_ref_deref
unnecessary_find_map
redundant_slicing
unnecessary_unwrap
bool_comparison
derivable_impls
manual_flatten
needless_borrowed_reference
2023-04-01 23:16:33 +02:00
Ezra Shaw
e0ec9c0b9c
rustdoc: tweak some variants omitted
...
Don't display `// some variants omitted` if enum is marked
`#[non_exhaustive]`
2023-03-26 18:05:42 +13:00
bors
d012d2f96e
Auto merge of #109399 - petrochenkov:rendersort, r=GuillaumeGomez
...
rustdoc: Optimize impl sorting during rendering
This should fix the perf regression on [bitmaps-3.1.0](https://github.com/rust-lang/rustc-perf/tree/master/collector/compile-benchmarks/bitmaps-3.1.0 ) from https://github.com/rust-lang/rust/pull/107765 .
The bitmaps crate has a lot of impls:
```rust
impl Bits for BitsImpl<1> { ... }
impl Bits for BitsImpl<2> { ... }
// ...
impl Bits for BitsImpl<1023> { ... }
impl Bits for BitsImpl<1024> { ... }
```
and the logic in `fn print_item` sorts them in natural order.
Before https://github.com/rust-lang/rust/pull/107765 the impls came in source order, which happened to be already sorted in the necessary way.
So the comparison function was called fewer times.
After https://github.com/rust-lang/rust/pull/107765 the impls came in "stable" order (based on def path hash).
So the comparison function was called more times to sort them.
The comparison function was terribly inefficient, so it caused a large perf regression.
This PR attempts to make it more efficient by using cached keys during sorting.
2023-03-24 23:41:53 +00: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
Vadim Petrochenkov
4d55affc12
rustdoc: Optimize impl sorting during rendering
2023-03-20 19:43:00 +04:00
klensy
433d243c6e
extra_info_tags don't return string, use display_fn
2023-03-17 18:52:36 +03:00
klensy
1f01433607
clean up few alloc
2023-03-16 20:38:33 +03:00
Matthias Krüger
aa881f16ec
Rollup merge of #108875 - notriddle:notriddle/return-trait, r=GuillaumeGomez
...
rustdoc: fix type search for `Option` combinators
2023-03-16 08:57:05 +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
Matthias Krüger
5b3f84d8af
Rollup merge of #108929 - eltociear:patch-20, r=GuillaumeGomez
...
Fix typo in span_map.rs
correspondance -> correspondence
2023-03-09 12:11:55 +01:00
Matthias Krüger
83791f9de7
Rollup merge of #106915 - notriddle:notriddle/load-only-one-theme, r=GuillaumeGomez,jsha
...
Only load one CSS theme by default
This is a tweaked version of #103971 that uses `document.write` to create the stylesheet link at startup, avoiding a FOUC during page navigation. It also rebases the PR, making it work with the new hashed filenames.
Fixes #82614
Preview: http://notriddle.com/notriddle-rustdoc-demos/load-only-one-theme-v2/std/index.html
2023-03-09 12:11:52 +01:00
Ikko Eltociear Ashimine
18667722e2
Fix typo in span_map.rs
...
correspondance -> correspondence
2023-03-09 14:47:42 +09:00
Matthias Krüger
6c91ce27c3
Rollup merge of #108686 - notriddle:notriddle/jank-all, r=jsha
...
rustdoc: include link on all.html location header
This avoids a subtle layout shift when switching from the crate page to all items.
## Before
| index.html | all.html |
|------------|----------|
|  |  |
## After
| index.html | all.html |
|------------|----------|
|  |  |
2023-03-08 21:24:50 +01:00
Michael Howell
f916681d8d
Only load one CSS theme by default
...
To avoid generating a FOUC at startup, this commit uses `document.write` to
load the stylesheet initially.
Co-Authored-By: Guillaume Gomez <guillaume1.gomez@gmail.com>
2023-03-08 12:49:34 -07:00
Michael Howell
44813e038c
rustdoc: fix type search when more than one where clause applies
2023-03-07 11:37:04 -07:00
Michael Howell
a6446c53fe
rustdoc: fix type search index for fn<T>() -> &T where T: Trait
2023-03-07 11:20:49 -07:00
Matthias Krüger
99fad38b19
Rollup merge of #108734 - clubby789:rustdoc-layout-uninhabited, r=GuillaumeGomez
...
rustdoc: Note in a type's layout/size if it is uninhabited
Closes #87008

2023-03-04 20:48:19 +01:00
Michael Howell
af664be423
rustdoc: include link on all.html location header
...
This avoids a subtle layout shift when switching from the crate page
to all items.
2023-03-04 11:54:28 -07:00
Michael Howell
9d27028391
rustdoc: function signature search with traits in where clause
2023-03-04 09:05:57 -07:00
clubby789
7520155e4e
rustdoc: Note in a type's layout/size if it is uninhabited
2023-03-04 12:07:29 +00:00
Dylan DPC
4165de40f8
Rollup merge of #107783 - notriddle:notriddle/item-table-ul, r=GuillaumeGomez
...
rustdoc: simplify DOM for `.item-table`
This switches from using `<div>` to the more semantic `<ul>`, and using class names that rhyme with the classes the search results table uses.
2023-02-19 13:03:41 +05:30
Kyle Matsuda
c183110cc2
remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata
2023-02-16 17:05:56 -07:00
Kyle Matsuda
d822b97a27
change usages of type_of to bound_type_of
2023-02-16 17:01:52 -07:00
Matthias Krüger
09ab35b574
Rollup merge of #108076 - GuillaumeGomez:more-let-chain, r=notriddle
...
rustdoc: Use more let chain
Got the idea after yesterday's review.
r? `@notriddle`
2023-02-15 21:30:59 +01:00