Commit graph

9695 commits

Author SHA1 Message Date
bors
a4d034126d Auto merge of #101432 - nnethercote:shrink-PredicateS, r=lcnr
Shrink `PredicateS`

r? `@ghost`
2022-09-07 13:49:58 +00:00
Yuki Okushi
1bc6110fdf
Rollup merge of #101491 - notriddle:notriddle/sub-variant-div-item-info, r=GuillaumeGomez
rustdoc: remove outdated CSS `.sub-variant > div > .item-info`

This CSS still matches sometimes, as you can see in <https://doc.rust-lang.org/1.63.0/std/collections/enum.TryReserveErrorKind.html#variant.AllocError.fields>, but since nothing else is setting `margin-top`, putting it back to `initial` does nothing.

This selector was added here, but it was called `.stability` instead of `.item-info` at the time, probably as an override for the selector immediately above it that sets a negative margin:

2fd378b82b/src/librustdoc/html/static/rustdoc.css (L514-L522)

That negative margin was removed in 593d6d1cb1.
2022-09-07 07:43:57 +09:00
Yuki Okushi
cf41b38209
Rollup merge of #101488 - notriddle:notriddle/results-table, r=GuillaumeGomez
rustdoc: remove unused CSS `#results > table`

This code was added in 96ef2f8ab9 to improve rendering of the search results table, but results have not used a table since b615c0c854 switched it to rendering with `<div>` tags.
2022-09-07 07:43:56 +09:00
Michael Howell
e1f5d4f23f rustdoc: remove outdated CSS .sub-variant > div > .item-info
This CSS still matches sometimes, as you can see in
<https://doc.rust-lang.org/1.63.0/std/collections/enum.TryReserveErrorKind.html#variant.AllocError.fields>,
but since nothing else is setting `margin-top`, putting it back to `initial`
does nothing.

This selector was added in 2fd378b82b (but it
was called `.stability` instead of `.item-info` at the time), probably as an
override for the selector immediately above it that sets a negative margin.
That negative margin was removed in 593d6d1cb1.
2022-09-06 10:36:51 -07:00
Michael Howell
4282802706 rustdoc: remove unused CSS #results > table
This code was added in 96ef2f8ab9 to improve
rendering of the search results table, but results have not used a table
since b615c0c854 switched it to rendering with
`<div>` tags.
2022-09-06 09:15:41 -07:00
Guillaume Gomez
b59c1aa298
Rollup merge of #101462 - aDotInTheVoid:rdj-enum-field-2, r=GuillaumeGomez
Rustdoc-Json: Store Variant Fields as their own item.

Closes #100587
Closes #92945

Successor to #100762

Unlike that one, we don't have merge `StructType` and `Variant`, as after #101386 `Variant` stores enum specific information (discriminant).

Resolves the naming discussion (https://github.com/rust-lang/rust/pull/100762#discussion_r950690526) by having seperate enums for struct and enum kinds

Resolves `#[doc(hidden)]` on tuple structs (https://github.com/rust-lang/rust/pull/100762#discussion_r950833884) by storing as a `Vec<Option<Id>>`

r? `@GuillaumeGomez`
2022-09-06 17:00:28 +02:00
Nixon Enraght-Moony
065e0b9c9c Rustdoc-Json: Store Variant Fields as their own item.
Closes #100587
Closes #92945
2022-09-05 23:59:33 +01:00
bors
b44197abb0 Auto merge of #101261 - TaKO8Ki:separate-receiver-from-arguments-in-hir, r=cjgillot
Separate the receiver from arguments in HIR

Related to #100232

cc `@cjgillot`
2022-09-05 16:21:40 +00:00
bors
2dc703fd6e Auto merge of #101228 - nnethercote:simplify-hir-PathSegment, r=petrochenkov
Simplify `hir::PathSegment`

r? `@petrochenkov`
2022-09-05 13:36:54 +00:00
Takayuki Maeda
87c6da363f separate the receiver from arguments in HIR 2022-09-05 22:25:49 +09:00
Dylan DPC
e4534fe6fe
Rollup merge of #101391 - matthiaskrgr:perf0309, r=oli-obk
more clippy::perf fixes
2022-09-05 14:15:52 +05:30
Nicholas Nethercote
79db32b64e Pack Term in the same way as GenericArg.
This shrinks the `PredicateS` type, which is instanted frequently.
2022-09-05 15:08:52 +10:00
Nicholas Nethercote
bb0ae3c446 Make hir::PathSegment::hir_id non-optional. 2022-09-05 14:20:25 +10:00
bors
406e03fd02 Auto merge of #101386 - aDotInTheVoid:rdj-discriminant, r=GuillaumeGomez
Rustdoc-Json: Add enum discriminant

Does the first part of #101337, by adding it to `clean`, but doesn't change HTML output, as

1. [No Consensus has appeared on the UI for this](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Enum.20discriminant.20values.20in.20HTML.20output)
2. [When inlining across crates, information is lost](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/.60clean_variant_def.20.60vs.20.60clean_variant_data.60)

JSON doesn't have either of these limitations.

r? `@GuillaumeGomez`
2022-09-05 04:16:08 +00:00
Matthias Krüger
43a7438e27
Rollup merge of #101397 - notriddle:notriddle/source-nav-not-sidebar-sub, r=GuillaumeGomez
rustdoc: remove redundant mobile-sized `.source nav:not(.sidebar).sub`

It's redundant because there's already a selector `.source nav.sub` with exactly the same margin-left at [line 796].

[line 796]: 84f0c3f79a/src/librustdoc/html/static/css/rustdoc.css (L796)

This selector was added in 1e98fb1027, along with an identical desktop selector, but that desktop selector was removed in 6a5f8b1aef as part of a larger simplification.
2022-09-04 18:55:47 +02:00
Nixon Enraght-Moony
efbd8f62ed rustdoc: Compute enum discriminant on demand 2022-09-04 12:53:25 +01:00
Michael Howell
3e743a064e rustdoc: remove redundant mobile-sized .source nav:not(.sidebar).sub
It's redundant because there's already a selector `.source nav.sub` with
exactly the same margin-left at line 796.

This selector was added in 1e98fb1027, along
with an identical desktop selector, but that desktop selector was removed in
6a5f8b1aef as part of a larger simplification.
2022-09-03 15:27:04 -07:00
Michael Howell
cee90dd773 rustdoc: remove .impl-items { flex-basis } CSS, not in flex container
Added in 34bd2b845b

For this to actually do anything, [according to MDN] (and Firefox Dev Tools),
it must be a "flex item", which only happens if its a direct child of a node
with `display: flex` on it. It seems like it could not have worked at the time
when this rule was added, because the only items in `rustdoc.css` with
`display: flex` active were:

* `#help`

  This should not contain anything like this.

* `.impl-items h4, h4.impl, h3.impl`

  These are all headers, so they shouldn't contain `.impl-items` either.

* `.content .impl-items .method, .content .impl-items > .type, .impl-items > .associatedconstant`

  Associated constants and methods definitely shouldn't contain a list of impl
  items, and the `.type` class seems to refer to type aliases, which, when
  shown inside of an impl, only show a link to the aliased type.

[according to MDN]: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis

Nowadays, `display: flex` is a lot more prolific, but `.impl-items` still
seems to only be used in plain block parents:

* If it's not a trait impl, then it's nested below a `<div>` with an id but no
  class, added in a5216cf67d. This will be
  `display: block`, probably. For example, [vec deref]
* Inherent impls also get a `<div>` tag, for example [vec impl], and they are
  also wrapped by their own non-flexbox `<details>` tag.
* If it's a tait implementation, then it's also nested below a `<details>`
  container, like [deref cstring].

[vec impl]: https://doc.rust-lang.org/1.63.0/std/vec/struct.Vec.html#impl
[vec deref]: https://doc.rust-lang.org/1.63.0/std/vec/struct.Vec.html#deref-methods-%5BT%5D
[deref cstring]: https://doc.rust-lang.org/1.63.0/std/ops/trait.Deref.html#impl-Deref

Also, this would imply that trait items ought to take up as much space as
possible, pushing everything else to the edge of the screen. If this is nested
directly below the `.rustdoc` container, which has a row basis, that would
be bad.
2022-09-03 14:33:31 -07:00
Nixon Enraght-Moony
b76a012be1 Rustdoc-Json: Add enum discriminant 2022-09-03 22:15:26 +01:00
Matthias Krüger
6f4726541e more clippy::perf fixes 2022-09-03 22:57:22 +02:00
Matthias Krüger
01da61a9bf
Rollup merge of #101365 - matthiaskrgr:clones2, r=fee1-dead
remove redundant clones
2022-09-03 14:20:53 +02:00
Matthias Krüger
5e34b79c29
Rollup merge of #101335 - notriddle:notriddle/methods-stability, r=notriddle
rustdoc: remove old CSS selector that causes weird spacing

It was added with e08a84a0c1 (actually, it was called `.methods > .stability` at the time) and was directly nested that way.

**EDIT**: It is technically reachable code still, but it seems wrong.

## With the old CSS rule still present

https://notriddle.com/notriddle-rustdoc-test/weird-spacing/lib/struct.Foo.html

![image](https://user-images.githubusercontent.com/1593513/188216226-c667c560-d33d-494f-a492-4e0ec3ac0009.png)

## Version 2 (an older version of this PR)

https://notriddle.com/notriddle-rustdoc-test/normal-spacing-2/lib/struct.Foo.html

![image](https://user-images.githubusercontent.com/1593513/188216418-9fcd3109-f1b2-425d-b4fc-0c6b3b54e48e.png)

## Version 3 (with alignment fix for mobile)

https://notriddle.com/notriddle-rustdoc-test/normal-spacing-3/lib/struct.Foo.html

![image](https://user-images.githubusercontent.com/1593513/188223161-0e1ebce7-842f-41cb-8a0c-ae43aedcfccc.png)
2022-09-03 14:20:49 +02:00
Matthias Krüger
57198b549f remove redundant clones 2022-09-03 07:58:41 +02:00
Guillaume Gomez
7fb0a89bec Clean up themes CSS 2022-09-03 00:16:09 +02:00
Michael Howell
0f29824760 rustdoc: put in rule to get alignment in desktop and mobile layouts 2022-09-02 13:13:22 -07:00
Michael Howell
6f95c89c4d rustdoc: remove incorrect CSS rule causing misaligned item-info 2022-09-02 11:50:19 -07:00
Michael Howell
df0904750d rustdoc: remove unused CSS selector .methods > .item-info
It was added with e08a84a0c1
(actually, it was called `.methods > .stability` at the time) and was
directly nested that way.

But with the switch to `<details>`, the code has changed drastically out from
under it, to the point where you have to go out of your way to actually get
it to render this way, and the result looks overly-tight and weird alongside
the normal version where this code is not reachable.
2022-09-02 11:45:16 -07:00
Matthias Krüger
e77b8ce100
Rollup merge of #101323 - GuillaumeGomez:remove-unused-css, r=notriddle
Remove unused .toggle-label CSS rule

It was added in https://github.com/rust-lang/rust/pull/44192 but since we moved to `<details>`, we don't use this rule any more.

r? `@notriddle`
2022-09-02 18:22:04 +02:00
Guillaume Gomez
017cfebcac Remove unused .toggle-label CSS rule 2022-09-02 15:09:59 +02:00
Guillaume Gomez
3880925e2c
Rollup merge of #101298 - notriddle:notriddle/rustdoc-main-since, r=GuillaumeGomez
rustdoc: remove unused CSS `#main-content > .since`

This rule was added (actually, it was called `#main > .since` back then) with cdca084377 and you can see an example of the bug it's intended to fix in <https://doc.rust-lang.org/1.9.0/std/fmt/fn.write.html> by looking at the `1.0.0` version marker.

However, a5a2f2b951 changed it so that `<span class="since">` is always placed in an out-of-band wrapper, so it's never nested directly below `#main` / `#main-content` any more.
2022-09-02 11:34:54 +02:00
Michael Howell
096efc29f1 rustdoc: remove unused CSS #main-content > .since
This rule was added (actually, it was called `#main > .since` back then) with
cdca084377 and you can see an example of the
bug it's intended to fix in <https://doc.rust-lang.org/1.9.0/std/fmt/fn.write.html>
by looking at the `1.0.0` version marker.

However, a5a2f2b951 changed it so that
`<span class="since">` is always placed in an out-of-band wrapper, so it's
never nested directly below `#main` / `#main-content` any more.
2022-09-01 15:25:22 -07:00
Matthias Krüger
1c12dedd53
Rollup merge of #101292 - rust-lang:notriddle/rustdoc-table-first-child, r=GuillaumeGomez
rustdoc: remove unneeded CSS `.content table td:first-child > a`

This rule was added in c1c6175e62 to benefit the module items table. However, the module items table stopped using table tags when 6020c79dde switched us over to grid layout.
2022-09-01 21:37:23 +02:00
Matthias Krüger
8f8a5d2723
Rollup merge of #101279 - GuillaumeGomez:doc_auto_cfg_nested_impl, r=notriddle
Fix doc_auto_cfg for impl blocks in different modules with different `cfg`

Fixes #101129.

Just like reexports, impl blocks don't necessarily share the same "space" as the item they implement so we need to merge attributes from its parents as well.

r? `@notriddle`
2022-09-01 21:37:20 +02:00
Matthias Krüger
e9df5ddda2
Rollup merge of #101274 - aDotInTheVoid:comment-typo, r=TaKO8Ki
Fix typo in comment
2022-09-01 21:37:19 +02:00
Matthias Krüger
418748ff6b
Rollup merge of #101254 - rust-lang:notriddle/remove-even-more-css, r=jsha
rustdoc: remove unused `.docblock .impl-items` CSS

The impl-items list stopped being nested inside a docblock since c1b1d6804b
2022-09-01 21:37:14 +02:00
Matthias Krüger
21c8447d78
Rollup merge of #101245 - GuillaumeGomez:remove-unneeded-where-whitespace, r=notriddle
Remove unneeded where whitespace

It fixes these two bugs:

![Screenshot from 2022-08-31 18-14-40](https://user-images.githubusercontent.com/3050060/187727950-94657419-abfa-454c-9d27-004280fbcb45.png)
![Screenshot from 2022-08-31 18-14-49](https://user-images.githubusercontent.com/3050060/187727956-21d1b39d-62d7-4e7b-8f6f-631ceda67a19.png)

It's a relic from a very old time (this commit: bfd01b7f40).

You can test the result [here](https://rustdoc.crud.net/imperio/remove-unneeded-where-whitespace/lib2/struct.WhereWhitespace.html).

cc `````````@jsha`````````
r? `````````@notriddle`````````
2022-09-01 21:37:11 +02:00
Michael Howell
31071336f5 rustdoc: remove unneeded CSS .content table td:first-child > a
This rule was added in c1c6175e62 to benefit
the module items table. However, the module items table stopped using table
tags when 6020c79dde switched us over to grid
layout.
2022-09-01 11:38:54 -07:00
Oli Scherer
1fc9ef1edd tracing::instrument cleanup 2022-09-01 14:54:27 +00:00
Guillaume Gomez
fb14ad06fa Correctly merge impl block cfg attributes with its parents 2022-09-01 14:31:27 +02:00
Nixon Enraght-Moony
c9f4af6e11 Fix typo in comment 2022-09-01 12:09:42 +01:00
bors
eac6c33bc6 Auto merge of #100869 - nnethercote:replace-ThinVec, r=spastorino
Replace `rustc_data_structures::thin_vec::ThinVec` with `thin_vec::ThinVec`

`rustc_data_structures::thin_vec::ThinVec` looks like this:
```
pub struct ThinVec<T>(Option<Box<Vec<T>>>);
```
It's just a zero word if the vector is empty, but requires two
allocations if it is non-empty. So it's only usable in cases where the
vector is empty most of the time.

This commit removes it in favour of `thin_vec::ThinVec`, which is also
word-sized, but stores the length and capacity in the same allocation as
the elements. It's good in a wider variety of situation, e.g. in enum
variants where the vector is usually/always non-empty.

The commit also:
- Sorts some `Cargo.toml` dependency lists, to make additions easier.
- Sorts some `use` item lists, to make additions easier.
- Changes `clean_trait_ref_with_bindings` to take a
  `ThinVec<TypeBinding>` rather than a `&[TypeBinding]`, because this
  avoid some unnecessary allocations.

r? `@spastorino`
2022-09-01 08:01:06 +00:00
bors
b32223fec1 Auto merge of #100707 - dzvon:fix-typo, r=davidtwco
Fix a bunch of typo

This PR will fix some typos detected by [typos].

I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.

[typos]: https://github.com/crate-ci/typos
2022-09-01 05:39:58 +00:00
Michael Howell
037a911bd8 rustdoc: remove unused .docblock .impl-items CSS
The impl-items list stopped being nested inside a docblock since c1b1d6804b
2022-08-31 15:47:48 -07:00
Guillaume Gomez
803e35abf7 Remove unneeded extra whitespace before where clause 2022-08-31 18:13:39 +02:00
Ralf Jung
8ed9ac658a
Rollup merge of #101204 - aDotInTheVoid:async-resugar-in-clean, r=GuillaumeGomez
rustdoc: Resugar async fn return type in `clean`, not `html`

This way it also happens for json output.

Fixes #101199

r? ``@GuillaumeGomez``
2022-08-31 14:29:54 +02:00
Ralf Jung
775e96970f
Rollup merge of #90946 - GuillaumeGomez:def-id-remove-weird-case, r=Manishearth
Ignore `reference`s in "Type::inner_def_id"

Fixes #90775.

Reopening of #90726.

As discussed on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/rendering.20for.20reference.20primitive.20doc.20page), the reference page shouldn't list these implementations (since they are listed on the types and on the traits in any case). And more generally, you don't implement something on a reference but on something behind a reference. I think it's the important point.

So currently it looks like this:

![Screenshot from 2021-11-16 10-20-41](https://user-images.githubusercontent.com/3050060/141957799-57aeadc5-41f8-45f6-a4a5-33b1eca6a500.png)

With this PR, only the implementations over generics behind a reference are kept.

You can test it [here](https://rustdoc.crud.net/imperio/def-id-remove-weird-case/std/primitive.reference.html).

cc ``@camelid``
2022-08-31 14:29:51 +02:00
Dezhi Wu
b1430fb7ca Fix a bunch of typo
This PR will fix some typos detected by [typos].

I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.

[typos]: https://github.com/crate-ci/typos
2022-08-31 18:24:55 +08:00
Guillaume Gomez
900cda2043 Print only blanket implementations on reference primitive type 2022-08-31 11:22:14 +02:00
Yuki Okushi
682644251d
Rollup merge of #100804 - GuillaumeGomez:search-results-color-ayu, r=notriddle
Fix search results color on hover for ayu theme

Before:

![image](https://user-images.githubusercontent.com/3050060/185747851-038d2333-8b01-44a8-a104-ceb7410ac089.png)

After:

![image](https://user-images.githubusercontent.com/3050060/185747869-53b502f5-5800-470f-b897-2683f1cdb7ee.png)

You can test it [here](https://rustdoc.crud.net/imperio/search-results-color-ayu/foo/index.html?search=item).

r? ``@jsha``
2022-08-31 08:47:14 +09:00
Guillaume Gomez
6c585fcce5 Clean up render_assoc_items_inner a bit 2022-08-30 20:22:05 +02:00