Commit graph

233 commits

Author SHA1 Message Date
Nixon Enraght-Moony
b76a012be1 Rustdoc-Json: Add enum discriminant 2022-09-03 22:15:26 +01:00
Matthias Krüger
ecd908ac5e
Rollup merge of #101106 - aDotInTheVoid:rdj-stripped-mod, r=GuillaumeGomez
Rustdoc-Json: Retain Stripped Modules when they are imported, not when they have items

Fixes #101103
Fixes #100973

r? `@GuillaumeGomez`
2022-08-29 21:12:56 +02:00
Nixon Enraght-Moony
8050c1993b Rustdoc-Json: Retain Stripped Modules when they are imported, not when they have items.
Fixes #101103
Fixes #100973
2022-08-29 00:15:10 +01:00
bors
ce36e88256 Auto merge of #100497 - kadiwa4:remove_clone_into_iter, r=cjgillot
Avoid cloning a collection only to iterate over it

`@rustbot` label: +C-cleanup
2022-08-28 18:31:08 +00:00
bors
650bff80a6 Auto merge of #100645 - notriddle:notriddle/rustdoc-diet-plan, r=GuillaumeGomez
rustdoc: strategic boxing to reduce the size of ItemKind and Type

The `Type` change redesigns `QPath` to box the entire data structure instead of boxing `self_type` and the `trait_`.

This reduces the size of several `ItemKind` variants, leaving `Impl` as the biggest variant. The `ItemKind` change boxes that variant's payload.
2022-08-21 16:40:26 +00:00
Michael Howell
238bcc940f rustdoc: box ItemKind::Trait
This reduces the memory consumption of ItemKind.
2022-08-16 13:09:37 -07:00
Takayuki Maeda
af74e7232f
Rollup merge of #100630 - Enselic:export_extern_crate_as_self, r=GuillaumeGomez
rustdoc JSON: Fix ICE with `pub extern crate self as <self_crate_name>`

Closes #100531

r? `@GuillaumeGomez`

`@rustbot` labels +A-rustdoc-json +T-rustdoc
2022-08-17 05:08:05 +09:00
Michael Howell
2aa4aa70dd rustdoc: factor Type::QPath out into its own box
This reduces the size of Type.
2022-08-16 12:48:04 -07:00
Martin Nordholts
dbeb506eae rustdoc JSON: Fix ICE with pub extern crate self as <self_crate_name> 2022-08-16 15:54:50 +02:00
Guillaume Gomez
c4a5ac2a77 Handle correctly stripped enum variant fields 2022-08-15 16:36:07 +02:00
Michael Goulet
4989f6a724
Rollup merge of #100335 - aDotInTheVoid:rdj-resolved-path, r=GuillaumeGomez
Rustdoc-Json: Add `Path` type for traits.

Avoids using `Type` for trait fields, as a trait must always be a path, and not any other kind of type.

``@rustbot`` modify labels: +A-rustdoc-json +T-rustdoc

Closes #100106
2022-08-13 21:06:48 -07:00
Michael Goulet
752b0e0672 make clean::Item::span return option instead of dummy span 2022-08-13 22:03:47 +00:00
KaDiWa
4eebcb9910
avoid cloning and then iterating 2022-08-13 16:16:52 +02:00
Nixon Enraght-Moony
86bdb3ed09 Rustdoc-Json: Add Path type for traits.
Closes #100106
2022-08-10 10:21:52 +01:00
Matthias Krüger
0dc39c7bd9
Rollup merge of #99479 - Enselic:import-can-be-without-id, r=camelid
rustdoc-json: Remove doc FIXME for Import::id and explain

Also add some test and refactor related code a bit.

``@rustbot`` labels +A-rustdoc-json +T-rustdoc
2022-08-10 00:00:24 +02:00
Nixon Enraght-Moony
6290f92d07 Rustdoc-Json: Add and use FromWithTcx for Vec 2022-08-03 14:17:26 +01:00
Nixon Enraght-Moony
625c4d70ff Rustdoc-Json: Extract convert_lifetime to function 2022-08-03 14:17:26 +01:00
Nixon Enraght-Moony
a856e57f6c Rustdoc-Json: Document HRTB's on DynTrait
Closes #99118
2022-08-03 14:17:26 +01:00
est31
1116fc164f Box FunctionItem, TyMethodItem, MethodItem, ForeignFunctionItem
This reduces ItemKind size from 160 bytes to 112 bytes
2022-07-29 19:30:25 +02:00
est31
96c051fd07 Box TypedefItem, ImplItem, AssocTypeItem variants of ItemKind
This reduces ItemKind size from 224 bytes to 160 bytes.
2022-07-29 19:30:25 +02:00
bors
ffa77332c6 Auto merge of #99598 - GuillaumeGomez:clean-trait-fields-on-demand, r=notriddle
Make some clean::Trait fields computation on demand

r? `@notriddle`
2022-07-22 16:52:10 +00:00
Guillaume Gomez
edb9add193 Make some clean::Trait fields computation on demand 2022-07-22 14:26:05 +02:00
Guillaume Gomez
8e150816c2 Remove unused field in ItemKind::KeywordItem 2022-07-21 16:05:17 +02:00
Martin Nordholts
4e73d90ce0 rustdoc-json: De-duplicate FromWithTcx<clean::Import> 2022-07-19 22:43:39 +02:00
Michael Howell
1169832f2f rustdoc: extend #[doc(tuple_variadic)] to fn pointers
The attribute is also renamed `fake_variadic`.
2022-07-17 16:32:06 -07:00
Guillaume Gomez
1a15c7147f Fix rustdoc JSON inline 2022-07-16 13:39:38 +02:00
Nixon Enraght-Moony
18aea4594b rustdoc-json-types: Clean up derives.
Closes #96189

Closes #96189

Everything is `Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize`
except `Crate` and `Item` which arn't `Hash`, as they have `HashMap`'s.
See linked issue for reasoning.
2022-07-02 00:11:29 +01:00
Martin Nordholts
ba87c934ea rustdoc-json: Make default value of blanket impl assoc types work 2022-06-29 21:05:51 +02:00
bors
2953edc7b7 Auto merge of #98475 - notriddle:notriddle/index-fn-signatures, r=GuillaumeGomez
rustdoc: reference function signature types from the `p` array

This reduces the size of the function signature index, because it's common to have many functions that operate on the same types.

    $ wc -c search-index-old.js search-index-new.js
    5224374 search-index-old.js
    3932314 search-index-new.js

By my math, this reduces the uncompressed size of the search index by 32%.
On compressed signatures, the wins are less drastic, a mere 8%:

    $ wc -c search-index-old.js.gz search-index-new.js.gz
    404532 search-index-old.js.gz
    371635 search-index-new.js.gz
2022-06-28 21:40:10 +00:00
Matthias Krüger
956a9f55c0
Rollup merge of #98611 - GuillaumeGomez:rustdoc-json-glob-ice, r=notriddle
Fix glob import ICE in rustdoc JSON format

Fixes #98003.

r? `@notriddle`
2022-06-28 18:34:32 +02:00
Guillaume Gomez
b7e62000dd Fix glob import ICE in rustdoc JSON format 2022-06-28 11:46:03 +02:00
Guillaume Gomez
c1c0d25939 Fix kind for associated types in rustdoc JSON output for trait implementations 2022-06-27 16:01:13 +02:00
Michael Howell
dc1fc08dc9 rustdoc: reference function signature types from the p array
This reduces the size of the function signature index, because
it's common to have many functions that operate on the same types.

    $ wc -c search-index-old.js search-index-new.js
    5224374 search-index-old.js
    3932314 search-index-new.js

By my math, this reduces the uncompressed size of the search index by 32%.
On compressed signatures, the wins are less drastic, a mere 8%:

    $ wc -c search-index-old.js.gz search-index-new.js.gz
    404532 search-index-old.js.gz
    371635 search-index-new.js.gz
2022-06-24 18:16:33 -07:00
Guillaume Gomez
8e40d93647 Filter out keyword items in rustdoc JSON output 2022-06-22 16:26:04 +02:00
Yuki Okushi
4557ff7bd7
Rollup merge of #98195 - GuillaumeGomez:rustdoc-json-primitive, r=notriddle
Fix rustdoc json primitive handling

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

cc `@matthiaskrgr`
2022-06-18 10:03:25 +09:00
Guillaume Gomez
87d90b1332 Fix rustdoc handling of primitive documentation 2022-06-17 14:41:07 +02:00
bors
6ec3993ef4 Auto merge of #97842 - notriddle:notriddle/tuple-docs, r=jsha,GuillaumeGomez
Improve the tuple and unit trait docs

* Reduce duplicate impls; show only the `(T,)` and include a sentence saying that there exists ones up to twelve of them.
* Show `Copy` and `Clone`.
* Show auto traits like `Send` and `Sync`, and blanket impls like `Any`.

Here's the new version:

* <https://notriddle.com/notriddle-rustdoc-test/std/primitive.tuple.html>
* <https://notriddle.com/notriddle-rustdoc-test/std/primitive.unit.html>
2022-06-16 11:13:30 +00:00
Guillaume Gomez
a752f82f19 Ignore impl items because they can be duplicated in case of generic impl 2022-06-13 15:29:29 +02:00
Michael Howell
6950f144cf rustdoc: show tuple impls as impl Trait for (T, ...)
This commit adds a new unstable attribute, `#[doc(tuple_varadic)]`, that
shows a 1-tuple as `(T, ...)` instead of just `(T,)`, and links to a section
in the tuple primitive docs that talks about these.
2022-06-08 19:26:51 -07:00
Guillaume Gomez
77e729ea92 Add Symbol into rustdoc JSON ID to prevent conflicts between reexports 2022-06-02 11:14:32 +02:00
bors
222c5724ec Auto merge of #94053 - GuillaumeGomez:fields-stripped, r=notriddle
rustdoc: Remove fields_stripped fields (and equivalents)

Fixes #90588.

r? `@camelid`
2022-05-23 18:26:42 +00:00
Michael Howell
08237d8a6d Shrink GenericArgs/PathSegment with boxed slices 2022-05-21 07:55:13 -07:00
Guillaume Gomez
6092cbb17c Remove fields_stripped fields (and equivalents) 2022-05-21 13:21:12 +02:00
Jacob Pratt
6970246886
Remove crate visibility modifier in libs, tests 2022-05-21 00:32:47 -04:00
Martin Nordholts
1f15ce5f97 rustdoc-json: Fix HRTBs for WherePredicate::BoundPredicate 2022-05-04 21:03:01 +02:00
Camille GILLOT
07ee031763 Stop using CRATE_DEF_INDEX.
`CRATE_DEF_ID` and `CrateNum::as_def_id` are almost always what we want.
2022-04-17 12:14:42 +02:00
Guillaume Gomez
b1e6211c5c Rename def_id into item_id when the type is ItemId for readability 2022-04-16 14:28:09 +02:00
León Orell Valerian Liehr
8de453a8c6 rustdoc: discr. required+provided assoc consts+tys 2022-04-12 15:38:39 +02:00
Guillaume Gomez
2c4ce9d2dc Remove header field from clean::Function 2022-03-29 11:46:57 +02:00
Nixon Enraght-Moony
a5c0b1470c rustdoc-json-types: implementors -> implementations
Closes #94198
2022-03-14 00:05:11 +00:00