Commit graph

6505 commits

Author SHA1 Message Date
bors
d8d3ab96aa Auto merge of #80090 - jyn514:tcx-in-render, r=GuillaumeGomez
Pass a `TyCtxt` through to `FormatRender`

This is the next step after https://github.com/rust-lang/rust/pull/79957 for https://github.com/rust-lang/rust/issues/76382. Eventually I plan to use this to remove `stability`, `const_stability`, and `deprecation` from `Item`, but that needs more extensive changes (in particular, https://github.com/rust-lang/rust/pull/75355 or something like it).

This has no actual changes to behavior, it's just moving types around.

ccc https://github.com/rust-lang/rust/pull/80014#issuecomment-746810284
2020-12-18 08:44:50 +00:00
bors
fee693d08e Auto merge of #80119 - GuillaumeGomez:str-to-symbol, r=jyn514
Continue String to Symbol conversion in rustdoc

Follow-up of https://github.com/rust-lang/rust/pull/80091.

This PR is already big enough so I'll stop here before the next one.

r? `@jyn514`
2020-12-18 05:55:24 +00:00
Guillaume Gomez
44e226ceb7 Continue String to Symbol conversion in rustdoc 2020-12-17 18:19:38 +01:00
Joshua Nelson
0c2f76a4bf Fix rebase conflict 2020-12-17 11:40:02 -05:00
Joshua Nelson
b421f2e8e9 TODO -> FIXME 2020-12-17 11:36:04 -05:00
Joshua Nelson
789c902914 Fix error with --cfg parallel_compiler
Apparently expansion() really does return Rc, not Lrc
2020-12-17 11:36:04 -05:00
Joshua Nelson
47c969436a Make it compile 2020-12-17 11:36:04 -05:00
Joshua Nelson
9221d4d1d3 [tmp] Pass TyCtxt through to the render backend
First actually useful step in https://github.com/rust-lang/rust/issues/76382

This doesn't yet compile because there's no way to get a `Lrc<Session>`
from a TyCtxt, only a `&Session`.
2020-12-17 11:36:04 -05:00
Joshua Nelson
79ab333cf0 Move run_renderer into the main global_ctxt closure 2020-12-17 11:36:00 -05:00
Joshua Nelson
34e8b0aae1 Separate create_resolver into a new function 2020-12-17 11:34:41 -05:00
Joshua Nelson
0ac58f7bf8 Split apart create_config and run_core 2020-12-17 11:34:41 -05:00
Guillaume Gomez
5873fe8851
Rollup merge of #80047 - jyn514:more-symbols, r=GuillaumeGomez
Use more symbols in rustdoc

Builds on https://github.com/rust-lang/rust/pull/80044 and should not be merged before.

I want to test if this is actually faster before merging it, there was a lot of `to_string()` calls so I'm not sure it will actually help. That means I have to wait for 80044 to get merged before running perf.

r? `@ghost`
2020-12-17 11:36:54 +01:00
bors
bdd0a78582 Auto merge of #80091 - GuillaumeGomez:str-to-symbol, r=jyn514
Replace String with Symbol where possible

The same as #80047 but on different types. Might be interesting to run some perf comparison.

r? `@jyn514`
2020-12-17 06:00:12 +00:00
Guillaume Gomez
50d221c924 Replace String with Symbol where possible 2020-12-16 22:04:27 +01:00
bstrie
1e1ca28f39 Allow since="TBD" for rustc_deprecated 2020-12-16 13:21:24 -05:00
bors
268cbfeb88 Auto merge of #79682 - jyn514:no-blanket-impls, r=Manishearth,GuillaumeGomez
Don't look for blanket impls in intra-doc links

This never worked and has been causing severe performance problems.
Hopefully it will be re-landed at some point in the future when it
actually works, but in the meantime it makes no sense to have the code
around when it does nothing and actively makes rustdoc harder to use.

Closes https://github.com/rust-lang/rust/issues/78761. Does *not* affect https://github.com/rust-lang/rust/issues/78800.

r? `@Manishearth`
cc `@seeplusplus`
2020-12-16 09:13:14 +00:00
bors
90f4b52961 Auto merge of #80041 - jyn514:shrink-item, r=GuillaumeGomez
Get rid of `clean::Deprecation`

This brings the size of `item.deprecation` from 56 to 16 bytes. Helps with #79103 and https://github.com/rust-lang/rust/issues/76382, in the same vein as https://github.com/rust-lang/rust/pull/79957.

r? `@GuillaumeGomez`
2020-12-16 03:35:08 +00:00
Joshua Nelson
7ee8e1816f Use Symbols for crate names 2020-12-15 21:22:35 -05:00
Joshua Nelson
c18c7c7059 Remove redundant assignment
`crate.name` is already set by `tcx.crate_name`, there's no need to
override it.
2020-12-15 21:22:15 -05:00
Joshua Nelson
6580f11a52 Don't look for blanket impls in intra-doc links
This never worked and has been causing severe performance problems.
Hopefully it will be re-landed at some point in the future when it
actually works, but in the meantime it makes no sense to have the code
around when it does nothing and actively makes rustdoc harder to use.
2020-12-15 17:33:40 -05:00
bors
f76ecd0668 Auto merge of #80044 - jyn514:smaller-name, r=GuillaumeGomez
[rustdoc] Switch to Symbol for item.name

This decreases the size of `Item` from 680 to 616 bytes. It also does a
lot less work since it no longer has to copy as much.

Helps with #79103.

r? `@GuillaumeGomez`
2020-12-15 18:40:50 +00:00
Guillaume Gomez
6990419257
Rollup merge of #80016 - jyn514:imports, r=GuillaumeGomez
Use imports instead of rewriting the type signature of `RustcOptGroup::stable`

This was an adventure; see https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/'higher.20ranked.20subtype.20error'

r? `@GuillaumeGomez`
2020-12-15 16:43:26 +01:00
Guillaume Gomez
bfe49a0aa3
Rollup merge of #79796 - GuillaumeGomez:hide-associated-const-when-collapsing, r=jyn514
Hide associated constants too when collapsing implementation

Fixes #71849.

r? `@jyn514`
2020-12-15 16:43:21 +01:00
Guillaume Gomez
275599daa5
Rollup merge of #79379 - GuillaumeGomez:no-js-not-hidden, r=Nemo157
Show hidden elements by default when JS is disabled

Fixes  #79301.

A lot of things are hidden by default which shouldn't when JS is disabled. This PR fixes it.

Before:

![Screenshot from 2020-11-24 14-10-16](https://user-images.githubusercontent.com/3050060/100099361-a16d5580-2e5f-11eb-891b-a4c005aeb1d0.png)

After:

![after](https://user-images.githubusercontent.com/3050060/100099382-a6caa000-2e5f-11eb-8190-14f330aff9a2.png)

r? `@jyn514`
2020-12-15 16:43:13 +01:00
bors
e1cce06e4f Auto merge of #77700 - bugadani:rustdoc-link-cache, r=jyn514
Rustdoc: Cache resolved links in current module

A step towards #77681
2020-12-15 04:06:51 +00:00
Joshua Nelson
a16904fecf Switch to Symbol for item.name
This decreases the size of `Item` from 680 to 616 bytes. It also does a
lot less work since it no longer has to copy as much.
2020-12-14 22:19:15 -05:00
Joshua Nelson
7d452430fa Get rid of clean::Deprecation
This brings the size of `item.deprecation` from 56 to 16 bytes.
2020-12-14 22:00:46 -05:00
Joshua Nelson
89fc5034f4 Remove unnecessary unwrap_or
This was always questionable, and removing it doesn't fail any tests, so
I think this was not affecting the behavior. It dates all the way back
to the very first commit of rustdoc: 268f3f0ff5
2020-12-14 21:49:13 -05:00
Guillaume Gomez
2169094ab8
Rollup merge of #80013 - poliorcetics:rustdoc-test-refactor, r=jyn514
Refactor test_lang_string_parse to make it clearer

Follows https://github.com/rust-lang/rust/pull/79454#discussion_r540190949

A small PR made to refactor a test in rustdoc that was becoming unwieldy.

``@rustbot`` label T-rustdoc
r? ``@jyn514``
2020-12-14 14:43:47 +01:00
Guillaume Gomez
63e86a7f72
Rollup merge of #79936 - GuillaumeGomez:mobile-fix-item-name, r=Nemo157,jyn514
Fix item name display on mobile

Fixes https://github.com/rust-lang/docs.rs/issues/1200

![Screenshot_20201211-200931](https://user-images.githubusercontent.com/3050060/101944457-0c06eb00-3bed-11eb-8f63-a4d4fd3cbb56.jpg)
![Screenshot_20201211-195846](https://user-images.githubusercontent.com/3050060/101944459-0d381800-3bed-11eb-91ff-815a2af7ca72.jpg)

cc `@jyn514`

r? `@Nemo157`
2020-12-14 14:43:45 +01:00
Dániel Buga
cc31b992b1 Review suggestions 2020-12-14 11:00:53 +01:00
Dániel Buga
850437b6f9 Cache link resolution results in current module
Co-authored-by: Joshua Nelson <jyn514@gmail.com>
2020-12-14 11:00:53 +01:00
Joshua Nelson
4c1addfcb7 Use imports instead of rewriting the type signature of stable
This was an adventure; see https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/'higher.20ranked.20subtype.20error'
2020-12-13 15:13:41 -05:00
Alexis Bourget
ec0f1d70c9 Refactor test_lang_string_parse to make it clearer 2020-12-13 17:47:46 +01:00
Yuki Okushi
3213089c02
Rollup merge of #79985 - GuillaumeGomez:fix-submit-event, r=jyn514
Fixes submit event of the search input

Fixes https://github.com/rust-lang/rust/issues/79960

It's a very funny corner case:

In HTML, when a button follows an input (in a `form`), if the enter keep is pressed on the input, instead of sending the submit event to the input, it'll create a click event on the button following it, which in this case made the help popup show up whenever "enter" was pressed.

cc `@camelid`

r? `@jyn514`
2020-12-13 11:05:48 +09:00
Yuki Okushi
5115bbf1dd
Rollup merge of #79973 - camelid:rustdoc-search-tab-color, r=GuillaumeGomez
rustdoc light theme: Fix CSS for selected buttons

Fixes #79961.

The background was dark before, which made the text impossible to read.
Now the button doesn't override the background, and the only thing it
does is add a light-blue top border.

Ultimately, the search results tabs now look very similar to how they
used to look.

r? `@GuillaumeGomez`
2020-12-13 11:05:45 +09:00
Yuki Okushi
1b81f08d4c
Rollup merge of #79940 - matthiaskrgr:cl15ppy, r=Dylan-DPC
fix more clippy::complexity findings

fix clippy::unnecessary_filter_map
use if let Some(x) = ..  instead of ...map(|x|) to conditionally run fns that return () (clippy::option_map_unit_fn)
fix clippy::{needless_bool, manual_unwrap_or}
don't clone types that are copy (clippy::clone_on_copy)
don't convert types into identical types with .into() (clippy::useless_conversion)
use strip_prefix over slicing (clippy::manual_strip)

r? ``@Dylan-DPC``
2020-12-13 11:05:36 +09:00
Guillaume Gomez
98118bbde4 Fixes submit event of the search input
In HTML, when a button follows an input, if the enter keep is pressed on the input, instead of sending the submit event to the input, it'll create a click event on the button following it, which in this case made the help popup show up whenever "enter" was pressed.
2020-12-13 00:25:06 +01:00
bors
f61e5cab76 Auto merge of #79976 - jyn514:assertion-failure, r=jyn514
Remove incorrect assert

Fixes an assertion failure when resolving `::std` (or any other crate that uses the `::` style, see https://github.com/rust-lang/rust/pull/79809/files#r541776478, https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Perf.20failing).

Unblocks https://github.com/rust-lang/rustc-perf/pull/806.

r? `@ghost` - this is a trivial fix and breaking rustc-perf so I'm going to approve it unilaterally. cc `@Mark-Simulacrum` `@Eric-Arellano`
2020-12-12 23:01:25 +00:00
Joshua Nelson
130dbe4642 Remove incorrect assert 2020-12-12 15:40:58 -05:00
Camelid
2b455aa7d8 rustdoc light theme: Fix CSS for selected buttons
The background was dark before, which made the text impossible to read.
Now the background is white, which is how selected `div`s are rendered.

As a result, the search results tabs now look identical to how they
used to look (before #79896).
2020-12-12 11:59:52 -08:00
bors
7efc097c4f Auto merge of #79957 - jyn514:smaller-span, r=GuillaumeGomez
[rustdoc] Calculate span information on demand instead of storing it ahead of time

This brings `size_of<clean::types::Span>()` down from over 100 bytes (!!) to only 12, the same as rustc. It brings `Item` down even more, from `784` to `680`.

~~TODO: I need to figure out how to do this for the JSON backend too. That uses `From` impls everywhere, which don't allow passing in the `Session` as an argument. `@P1n3appl3,` `@tmandry,` maybe one of you have ideas?~~ Figured it out, fortunately only two functions needed to be changed. I like the `convert_x()` format better than `From` everywhere but I'm open to feedback.

Helps with #79103
2020-12-12 19:41:56 +00:00
Joshua Nelson
9684557c8f Small cleanups
- Use a tuple struct instead of a single field
- Enforce calling `source_callsite()` by making the inner span private
- Rename `empty` to `dummy`
2020-12-12 09:40:34 -05:00
Joshua Nelson
0e574fb39a Fix the JSON backend
This was simpler than expected.
2020-12-12 00:01:25 -05:00
Joshua Nelson
4fa95b3a07 Calculate span info on-demand instead of ahead of time
This should *vastly* reduce memory usage.
2020-12-12 00:01:01 -05:00
Joshua Nelson
af6aa9f431 Pass Session into renderer 2020-12-12 00:00:09 -05:00
Matthias Krüger
82fe5c1662 don't convert types into identical types with .into() (clippy::useless_conversion) 2020-12-11 23:02:19 +01:00
Matthias Krüger
5c8de1cf49 use strip_prefix over slicing (clippy::manual_strip) 2020-12-11 23:02:17 +01:00
bors
9eb3a7ceaf Auto merge of #79349 - Nemo157:issue-79201, r=jyn514
Apply `doc(cfg)` from parent items while collecting trait impls

Because trait impls bypass the standard `clean` hierarchy they do not participate in the `propagate_doc_cfg` pass, so instead we need to pre-collect all possible `doc(cfg)` attributes that will apply to them when cleaning.

fixes #79201
2020-12-11 22:00:00 +00:00
Guillaume Gomez
9c36491538 Fix main section position so that the search input remains clickable 2020-12-11 20:07:24 +01:00