Commit graph

3295 commits

Author SHA1 Message Date
Timothée Delabrouille
b4f1dfd2c5 Removed usage of Attributes in FnDecl and ExternalCrate. Relocate part of the fields in Attributes, as functions in AttributesExt.
refacto use from_def_id_and_attrs_and_parts instead of an old trick

most of josha suggestions + check if def_id is not fake before using it in a query

Removed usage of Attributes in FnDecl and ExternalCrate. Relocate part of the Attributes fields as functions in AttributesExt.
2021-04-27 10:17:59 +02:00
bors
f7c468fe9a Auto merge of #80339 - jyn514:no-span, r=GuillaumeGomez
Calculate `span` info on-demand

- Add helper `attr_span` for common reused function
- Stop storing `Span`s on `Item` directly; calculate them on demand instead
- Special case modules, which have different spans depending on whether
  you use inner or outer attributes
- Special case impls with fake IDs, which can have either dummy spans (for auto traits) or the DefId of the impl block (for blanket impls)
- Use a fake ID for primitives instead of the ID of the crate; this lets
  `source()` know that it should use a dummy span instead of the span of
  the crate.

This shrinks `Item` from 48 to 40 bytes.

Helps with https://github.com/rust-lang/rust/issues/76382.
2021-04-25 01:57:10 +00:00
Joshua Nelson
c44c64df71 Get rid of item.span
- Remove `span` field, adding `Item::span()` instead
- Special-case `Impl` and `Module` items
- Use dummy spans for primitive items
2021-04-24 19:21:48 -04:00
Joshua Nelson
b412b46cf7 Do the hard part first
The only bit failing was the module, so change that before removing the
`span` field.
2021-04-24 19:20:46 -04:00
bors
42816d61ea Auto merge of #84511 - davidhewitt:revert-84445, r=GuillaumeGomez
Revert "rustdoc: Hide `#text` in doc-tests"

See discussion in #84502 - I'm worried that #84445 may cause a lot of breakages if this were to hit stable, so I think it's safer to revert and work on the known correct fix #84478.
2021-04-24 20:35:12 +00:00
Yuki Okushi
5716bab1ab
Rollup merge of #84518 - GuillaumeGomez:cleanup-up-dom-string, r=jsha
Clean up DOM strings

Follow-up of #84320.

r? ``@jsha``
2021-04-25 01:53:16 +09:00
Yuki Okushi
e25c5e2c25
Rollup merge of #84464 - jyn514:type-kind, r=CraftSpider
rustdoc: Get rid of `clean::TypeKind`

It does exactly the same thing as ItemType.
2021-04-25 01:53:15 +09:00
Yuki Okushi
b566d0ae12
Rollup merge of #84460 - jyn514:doctree-is-crate, r=camelid
rustdoc: Remove unnecessary `is_crate` field from doctree::Module and clean::Module

It can be calculated on-demand even without a TyCtxt.

This also changed `json::conversions::from_item_kind` to take a whole item, which avoids
having to add more and more parameters.

Helps with https://github.com/rust-lang/rust/issues/76382.

r? ```@camelid```
2021-04-25 01:53:14 +09:00
Guillaume Gomez
9c30382fd0 Clean up DOM strings 2021-04-24 14:44:43 +02:00
David Hewitt
5b05f687db Revert "rustdoc: Hide #text in doc-tests"
This reverts commit af6c3201fc.
2021-04-24 11:54:44 +01:00
Yuki Okushi
8d75898dbb
Rollup merge of #84458 - jyn514:cleanup-after-krate, r=GuillaumeGomez
Remove unnecessary fields and parameters in rustdoc

r? `@GuillaumeGomez`
2021-04-24 12:17:07 +09:00
Yuki Okushi
b4544698d3
Rollup merge of #84320 - jsha:details-implementors, r=Manishearth,Nemo157,GuillaumeGomez
Use details tag for trait implementors.

Part of #83332 and following on from #83337 and #83355.

This removes one category of JS-generated toggles (implementors), and replaces them with a `<details>` tag. This simplifies the JS, and fixes some bugs where things that were supposed to be hidden by the toggle were not hidden. Compare https://hoffman-andrews.com/rust/details-implementors/std/io/trait.Read.html#impl-Read vs https://doc.rust-lang.org/nightly/std/io/trait.Read.html#implementors.

This introduces a `left: -23px` to put the toggle in the correct place, matching the current style for `.collapse-toggle`.

It's worth noting this introduces a slight behavior change: since the entire line is now a `<summary>`, any part of the line is clickable. So for instance, in `impl Read for File`, clicking `impl` or `for` will collapse / expand the docs. Clicking `Read` or `File` still links to the appropriate documentation as before.
2021-04-24 12:17:03 +09:00
Joshua Nelson
f3ef4b2cef Use ItemType in cache 2021-04-23 15:56:14 -04:00
Joshua Nelson
e29f46ce37 rustdoc: Remove unnecessary is_crate field from doctree::Module and clean::Module
It can be calculated on-demand even without a TyCtxt.

This also changed `from_item_kind` to take a whole item, which avoids
having to add more and more parameters.
2021-04-23 15:33:18 -04:00
Yuki Okushi
a50f502766
Rollup merge of #84433 - GuillaumeGomez:search-input-blur, r=jsha
Prevent control, shift and alt keys to make search input lose focus

Part of #84384.

r? ````@jsha````
2021-04-24 03:44:11 +09:00
Yuki Okushi
d05e28df15
Rollup merge of #84321 - Swatinem:subvariant-details, r=GuillaumeGomez
rustdoc: Convert sub-variant toggle to HTML

Instead of creating a JS toggle, this injects details/summary for
sub-variants of enums. This also fixes the CSS so that the toggle button
does not jump when expanding/collapsing.

Takes inspiration from #83337 and should be considered part of #83332. Not quite sure if the `.sub-variant` selectors could be further simplified? AFAICS it is only used in that place, and that does not seem to allow any recursion.
2021-04-24 03:44:05 +09:00
Arpad Borsos
85879fe83d
improve wording 2021-04-23 18:13:06 +02:00
bors
484c61943f Auto merge of #84457 - jyn514:cleanup-crate, r=GuillaumeGomez
rustdoc: Remove most fields from ExternalCrate

Once https://github.com/rust-lang/rust/issues/84304 is fixed, I can get rid of ExternCrate altogether in favor of CrateNum, but in the meantime, this shrinks ExternalCrate quite a lot.

This might hurt compile-times; if it does, I can add `primitive` and `keyword` queries. I expect this to improve compilemem.

Helps with https://github.com/rust-lang/rust/issues/76382.

r? GuillaumeGomez
2021-04-23 15:45:52 +00:00
bors
9a35232611 Auto merge of #84445 - jyn514:hidden, r=<try>
rustdoc: Hide `#text` in doc-tests

Since `#![attr]` and `#[attr]` are the only valid syntax that start with `#`, we can just special case those two tokens.

Fixes https://github.com/rust-lang/rust/issues/83284.
2021-04-23 13:28:04 +00:00
Joshua Nelson
edb60a9243 Remove unnecessary item_name parameter to mod_item_in 2021-04-22 19:53:38 -04:00
Joshua Nelson
7f6d540440 Remove unnecessary item_name parameter to mod_item_out 2021-04-22 19:46:53 -04:00
Joshua Nelson
423963c07b Remove unnecessary edition field on SharedContext 2021-04-22 19:38:20 -04:00
Joshua Nelson
640cc741e0 Remove unnecessary edition parameter to renderer 2021-04-22 19:35:20 -04:00
Joshua Nelson
68db5869e3 Remove unnecessary diag parameter to after_krate 2021-04-22 19:32:24 -04:00
Joshua Nelson
f435f7185b Remove unnecessary crate_name parameter to after_krate
It's always `tcx.crate_name(LOCAL_CRATE)`, it doesn't need to be passed
in separately.
2021-04-22 19:27:37 -04:00
Joshua Nelson
3bef65ffaf Remove name field from ExternalCrate 2021-04-22 19:02:09 -04:00
Joshua Nelson
af6c3201fc rustdoc: Hide #text in doc-tests
Since `#![attr]` and `#[attr]` are the only valid syntax that start with `#`, we can just special case those two tokens.
2021-04-22 18:43:16 -04:00
Dylan DPC
7b6fd616c9
Rollup merge of #84376 - torhovland:issue-84534, r=GuillaumeGomez
Uses flex to fix formatting of h1 at any width

Fixes #84354.
2021-04-22 18:14:37 +02:00
Guillaume Gomez
a03cba38f1 Prevent control, shift and alt keys to make search input lose focus 2021-04-22 13:50:23 +02:00
Tor Hovland
bb91805ace Replaced flex gap with margin, for compatibility with older browsers. 2021-04-21 21:33:48 +02:00
Smitty
05121a22e6 fix is_module check 2021-04-20 19:10:00 -04:00
Smitty
7cf4f4276f Rename pushname to is_module 2021-04-20 18:53:15 -04:00
Smitty
0c193f82e7 Write Rustdoc titles like "x in crate::mod - Rust"
This makes Rustdoc titles for items read like
"x in cratename::blah::foo - Rust". Title for modules and other
non-items are unchanged, and still read like
"doccratenameconst::blah::foo - Rust". This makes managing several open
Rustdoc tabs easier.

Closes #84371.
2021-04-20 17:31:18 -04:00
Tor Hovland
a10d01be22 Uses flex to fix formatting of h1 at any width. 2021-04-20 22:31:48 +02:00
Dylan DPC
868de80ac2
Rollup merge of #84347 - Swatinem:simplify-document-fns, r=jyn514
rustdoc: Simplify some document functions

* Remove `prefix` param of `document_short/full`, `render_markdown`, as its always an empty string.
* Remove `Option` wrapping of `document_short` `parent`, as its always `Some`.
2021-04-20 11:08:30 +02:00
Dylan DPC
5cc3994654
Rollup merge of #84340 - notriddle:patch-4, r=GuillaumeGomez
rustdoc: Show nag box on IE11

Rustdoc doesn't work on IE11. It's been broken for months, it isn't supported by the [tiered browser support list], it's even more severely broken on other Rust websites, and IE11 doesn't support the `<details>` tag that we want to use.

In the interest of honesty, let's give an actual error message for anyone on IE11.

[tiered browser support list]: https://github.com/rust-lang/rfcs/blob/master/text/1985-tiered-browser-support.md
2021-04-20 11:08:28 +02:00
bors
a70fbf6620 Auto merge of #83900 - torhovland:issue-83832, r=jyn514
Add stability tags to ImportItem.

Fixes #83832.
2021-04-20 06:03:15 +00:00
Jacob Hoffman-Andrews
569096cbaf rustdoc: use details tag for trait implementors
This switches from JS-generated toggles to using the HTML <details> tag
for expanding and collapsing entries in the "Implementors" section.
2021-04-19 19:46:51 -07:00
Arpad Borsos
d93d77b713
rustdoc: Simplify some document functions
* Remove `prefix` param of `document_short/full`, `render_markdown`, as its always an empty string.
* Remove `Option` wrapping of `document_short` `parent`, as its always `Some`.
2021-04-19 23:42:09 +02:00
Michael Howell
20c3627052 Use onEachLazy to iterate DOMTokenList 2021-04-19 14:12:40 -07:00
Michael Howell
9b624071d3 rustdoc: Show nag box on IE10
Rustdoc doesn't work on IE11. It's been broken for months, it isn't supported
by the [tiered browser support list], it's even more severely broken on other
Rust websites, and IE11 doesn't support the `<details>` tag that we want
to use.

In the interest of honesty, let's give an actual error message for anyone
on IE11.

[tiered browser support list]: https://github.com/rust-lang/rfcs/blob/master/text/1985-tiered-browser-support.md
2021-04-19 13:39:48 -07:00
Dylan DPC
a23fd1694d
Rollup merge of #84330 - GuillaumeGomez:remove-footer, r=jyn514
Remove unused footer section

I realized yesterday while working on docs.rs that rustdoc was generating a "footer"section that it doesn't use. No need to keep it then.

r? `@jyn514`
2021-04-19 22:00:11 +02:00
Tor Hovland
64a68ae69a No longer need to add attrs to ImportSource. 2021-04-19 20:39:04 +02:00
Guillaume Gomez
4fa1d6177c Remove unused footer section 2021-04-19 10:21:31 +02:00
Arpad Borsos
9f8eeca3bf
rustdoc: Convert sub-variant toggle to HTML
Instead of creating a JS toggle, this injects details/summary for
sub-variants of enums. This also fixes the CSS so that the toggle button
does not jump when expanding/collapsing.
2021-04-19 09:38:22 +02:00
bors
62652865b6 Auto merge of #84283 - jsha:de-emphasize-attributes, r=GuillaumeGomez
rustdoc: Reduce visual weight of attributes.

Followup from #83337. As part of that PR, we stopped hiding attributes behind a toggle, because most things have just zero or one attributes. However, this made clear that the current rendering of attributes emphasizes them a lot, which distracts from function signatures. This PR changes their color of attributes to be the same as the toggles, and reduces their font weight.

This also removes `#[lang]` from the list of ALLOWED_ATTRIBUTES. This attribute is an implementation detail rather than part of the public-facing documentation.

![image](https://user-images.githubusercontent.com/220205/115131061-cc407d80-9fa9-11eb-9a77-ad3f3217f391.png)

Demo at https://hoffman-andrews.com/rust/de-emph-attr/std/string/struct.String.html#method.trim
2021-04-19 07:32:55 +00:00
bors
8108e17faa Auto merge of #84288 - notriddle:short-links, r=jyn514
rustdoc: get rid of CURRENT_DEPTH

Fixes #82742
2021-04-19 01:59:20 +00:00
Tor Hovland
c975fe25e4 Put attrs in a Box for memory efficiency. 2021-04-18 18:02:08 +02:00
Tor Hovland
fca088ae23 Now also displays portability tags. 2021-04-18 10:46:06 +02:00
Tor Hovland
1e2ab998c3 Give import items their own CSS class. 2021-04-18 10:46:06 +02:00