Commit graph

1480 commits

Author SHA1 Message Date
Michael Goulet
a6116b9564
Rollup merge of #100348 - camelid:test-93205, r=jyn514
Add regression test for #93205

Closes #93205.

This issue was most likely fixed by #93805.
2022-08-10 09:28:21 -07:00
Noah Lev
7bfcfd2242 Fix failing test
For some reason, adding some text to match against makes this test pass.
Before, when it was *more* general, it was failing!

This seems very likely to be a bug in htmldocck, which I'm going to
investigate.
2022-08-09 21:18:12 -07:00
Noah Lev
fcbdf08a86 Add regression test for #93205
This issue was most likely fixed by #93805.
2022-08-09 19:57:56 -07:00
Matthias Krüger
752b9a85dc
Rollup merge of #100323 - GuillaumeGomez:impl-blocks-only-private, r=notriddle
[rustdoc] Don't render impl blocks with doc comment if they only contain private items by default

Fixes #100001.

cc `@jhpratt`
r? `@notriddle`
2022-08-10 00:00:37 +02:00
Guillaume Gomez
c634852cfb Add test for impl blocks containing only private items 2022-08-09 16:44:39 +02:00
Dylan DPC
d910e5376b
Rollup merge of #100221 - compiler-errors:impossible-trait-items, r=lcnr,notriddle,camelid
Don't document impossible to call default trait items on impls

Closes #100176

This only skips documenting _default_ trait items on impls, not ones that are written inside the impl block. This is a conservative approach, since I think we should document all items written in an impl block (I guess unless hidden or whatever), but the existence of this new query I added makes this easy to extend to other rustdoc cases.
2022-08-09 17:34:54 +05:30
bors
8d1fa7105b Auto merge of #100205 - cjgillot:noice-doc, r=camelid
Avoid ICE in rustdoc when using `Fn` bounds

Fixes https://github.com/rust-lang/rust/issues/100143
2022-08-09 05:05:46 +00:00
Noah Lev
28e4b9e64e Add regression test comment 2022-08-08 14:09:55 -07:00
Camille GILLOT
eab3b05b62 Synthetize a trait ref when none is available. 2022-08-08 21:09:09 +02:00
Michael Goulet
b3b23aada9 Don't document impossible to call default trait items on impls 2022-08-07 23:44:05 +00:00
Michael Howell
2289955546 rustdoc: do not mark the contents of a skipped module as inlined 2022-08-06 13:20:04 -07:00
Camille GILLOT
a6cfabc88a Avoid ICE in rustdoc. 2022-08-06 19:43:48 +02:00
Dylan DPC
acf691234f
Rollup merge of #99738 - notriddle:notriddle/multiple-modules-w-same-name, r=camelid
rustdoc: avoid inlining modules with duplicate names

Fixes rust-lang/rust#99734
2022-08-03 13:45:51 +05:30
Michael Howell
8724ca3114 rustdoc: avoid inlining foreigns with duplicate names 2022-08-02 14:48:23 -07:00
Yuki Okushi
181bf05d86
Rollup merge of #99700 - est31:rustdoc_layout_heading, r=GuillaumeGomez
Add a clickable link to the layout section

The layout section (activated by `--show-type-layout`) is currently not linkable to (outside of chrome's link to text feature). This PR makes it linkable via `#layout`.
2022-07-27 11:52:54 +09:00
est31
15db4186b7
Simplify test
Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-07-26 12:45:16 +02:00
Michael Howell
225ac9efc1 rustdoc: avoid inlining modules with duplicate names
Fixes rust-lang/rust#99734
2022-07-25 16:35:12 -07:00
Maybe Waffle
ed8c2c28f0 apply review suggestions 2022-07-25 21:12:56 +04:00
est31
5fcd2f72fe Add a clickable link to the layout section 2022-07-25 19:11:10 +02:00
Maybe Waffle
d566334a94 add backticks 2022-07-24 15:10:39 +04:00
Maybe Waffle
9b9693c11b Add rustdoc test for #[rustc_must_implement_one_of] 2022-07-24 15:10:39 +04:00
Dylan DPC
449ffe0bd5
Rollup merge of #99393 - Logarithmus:feature/99255-omit-const-generic-suffixes, r=petrochenkov
feat: omit suffixes in const generics (e.g. `1_i32`)

Closes #99255
2022-07-22 11:53:40 +05:30
bors
9a7b7d5e50 Auto merge of #98180 - notriddle:notriddle/rustdoc-fn, r=petrochenkov,GuillaumeGomez
Improve the function pointer docs

This is #97842 but for function pointers instead of tuples. The concept is basically the same.

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

https://notriddle.com/notriddle-rustdoc-test/std/primitive.fn.html
2022-07-19 19:36:57 +00:00
Artur Sinila
8530407e31
tests: fix rustdoc tests 2022-07-19 03:46:32 +03: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
Michael Howell
c8221830c7 rustdoc: avoid inlining items with duplicate (type, name)
Fixes #99221
2022-07-16 17:04:43 -07:00
Dylan DPC
f242e295e4
Rollup merge of #98973 - GuillaumeGomez:inherent-impl-anchors, r=notriddle
Remove (unused) inherent impl anchors

This is something `@notriddle` realized a few days ago: we have unused anchors in the DOM.

This PR removes them.

You can test it [here](https://rustdoc.crud.net/imperio/inherent-impl-anchors/foo/index.html).

r? `@notriddle`
2022-07-07 18:06:54 +05:30
Guillaume Gomez
77ec591727
Rollup merge of #98939 - GuillaumeGomez:rustdoc-disamb-impls, r=notriddle
rustdoc: Add more semantic information to impl IDs

Take over of #92745.

I fixed the last remaining issue for the links in the sidebar (mentioned by `@jsha)` and fixed the few links broken in the std/core docs.

cc `@camelid`
r? `@notriddle`
2022-07-06 20:43:27 +02:00
Guillaume Gomez
d87bf24925
Rollup merge of #98911 - notriddle:notriddle/rustdoc-string-impl, r=GuillaumeGomez
rustdoc: filter '_ lifetimes from ty::Generics

Fixes a weirdly-rendered section of the std::string::String docs.

Before:

![image](https://user-images.githubusercontent.com/1593513/177256873-20b9cf6e-2429-4865-853b-b269d74672f4.png)

After:

![image](https://user-images.githubusercontent.com/1593513/177256900-ef3efd17-f624-40c5-af90-fe709ec034f2.png)
2022-07-06 20:43:25 +02:00
Guillaume Gomez
7967152eee Add test for inherent impls anchors 2022-07-06 14:58:46 +02:00
Guillaume Gomez
4986379d79
Rollup merge of #98256 - GuillaumeGomez:whitespace-where-clause, r=notriddle
Fix whitespace handling after where clause

Fixes #97733.

You can see the result [here](https://rustdoc.crud.net/imperio/whitespace-where-clause/doc/foo/index.html).

r? `@jsha`
2022-07-05 23:43:31 +02:00
Guillaume Gomez
c8a5b671a0 Add test for invalid whitespace display after where clause 2022-07-05 22:37:42 +02:00
Guillaume Gomez
05e69d8fc6 Update rustdoc tests 2022-07-05 21:33:39 +02:00
pierwill
499e024ac9 rustdoc: Add more semantic information to impl ids
Instead of generating `#impl`, `#impl-1`, etc., generate IDs
like `#impl-Foo<M>`.

Co-authored-by: Noah Lev <camelidcamel@gmail.com>
2022-07-05 19:43:52 +02:00
Dylan DPC
6a61e18688
Rollup merge of #98856 - GuillaumeGomez:rustdoc-test-rm-fixme, r=Dylan-DPC
Remove FIXME from rustdoc intra-doc test

Removed the FIXME.

For the `extern crate`, even if `pub` exported, its documentation wasn't rendered so there is no point in keeping it.

r? ``@notriddle``
2022-07-05 16:04:34 +05:30
Michael Howell
3ac1a9b50d rustdoc: filter '_ lifetimes from ty::Generics
Fixes a weirdly-rendered section of the std::string::String docs.
2022-07-04 22:21:38 -07:00
Matthias Krüger
9ad3ef13ac
Rollup merge of #98814 - fmease:minimal-fix-for-issue-97933, r=GuillaumeGomez
rustdoc: Censor certain complex unevaluated const exprs

Fixes #97933.

This is more of a hotfix for the aforementioned issue. By that, I mean that my proposed patch is
not the best solution but one that does not change as much existing code.
It treats symptoms rather than the root cause.

This PR “censors” certain complex unevaluated constant expressions like `match`es, blocks, function calls, struct literals etc. by pretty-printing them as `_` / `{ _ }` (number and string literals, paths and `()` are still printed as one would expect).
Resorting to this placeholder is preferable to printing the full expression verbatim since
they can be quite large and verbose resulting in an unreadable mess in the generated documentation.
Further, mindlessly printing the const would leak private and `doc(hidden)` struct fields (#97933), at least in the current
stable & nightly implementations which rely on `span_to_snippet` (!) and `rustc_hir_pretty::id_to_string`.

The censoring of _verbose_ expressions is probably going to stay longer term.
However, in regards to private and `doc(hidden)` struct fields, I have a more proper fix in mind
which I have already partially implemented locally and for which I am going to open a separate PR sometime soon.
For that, I was already in contact with `@GuillaumeGomez.`
The proper fix involves rustdoc not falling back on pretty-printing unevaluated consts so easily (what this PR is concerned about)
and instead preferring to print evaluated consts which contain more information allowing it to selectively hide private and `doc(hidden)` fields, create hyperlinks etc. generally making the output more granular and precise (compared to the brutal `_` placeholder).

Unfortunately, I was a bit too late and the issue just hit stable (1.62).
Should this be backported to beta or even a potential 1.62.1?

r? `@GuillaumeGomez`
2022-07-04 23:11:11 +02:00
León Orell Valerian Liehr
d3181a9a01 rustdoc: censor certain complex unevaluated const exprs 2022-07-04 18:39:52 +02:00
Matthias Krüger
f236b6853a
Rollup merge of #98806 - GuillaumeGomez:decl-trailing-whitespace, r=notriddle
Fix long declaration trailing whitespace

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

Interestingly enough, it even simplifies the code a bit.

r? `@notriddle`
2022-07-04 06:08:09 +02:00
Guillaume Gomez
69f7a6216e Add test for trailing whitespace in long declaration 2022-07-03 20:28:47 +02:00
Guillaume Gomez
ce9e834b6b Remove FIXME from rustdoc intra-doc test 2022-07-03 20:23:30 +02:00
Camille GILLOT
42e4eee893 Shorten def_span for more items. 2022-07-01 17:39:19 +02:00
Michael Howell
cd7bd8bf0a rustdoc: filter '_ lifetimes from ty::PolyTraitRef
Fixes #98697
2022-06-30 10:35:50 -07:00
Guillaume Gomez
0398aa8ccb Add regression test for #92859 2022-06-26 14:01:00 +02:00
Guillaume Gomez
f4db07ed4c Add test for macro support in "jump to def" feature 2022-06-20 21:09:55 +02:00
Dylan DPC
3174a694e0
Rollup merge of #98105 - notriddle:notriddle/tuple-links, r=jsha
rustdoc: remove tuple link on round braces

This is #98069 but for tuples. The reasoning is the same:

* This PR also changes it so that tuples with all-generic elements still link to the primitive.tuple.html page, just like slices. So there still plenty of on-ramps for anybody who doesn't know about it.
* It's too hard to see when round braces are a separate link from the type inside of them.
* It's too hard to click even if you do notice them.

Before:

* impl [ToSocketAddrs](https://doc.rust-lang.org/nightly/std/net/trait.ToSocketAddrs.html) for [(](https://doc.rust-lang.org/nightly/std/primitive.tuple.html)[IpAddr](https://doc.rust-lang.org/nightly/std/net/enum.IpAddr.html), [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html)[)](https://doc.rust-lang.org/nightly/std/primitive.tuple.html)
* impl<K, V> [FromIterator](https://notriddle.com/notriddle-rustdoc-test/std/iter/trait.FromIterator.html)<[(](https://notriddle.com/notriddle-rustdoc-test/std/primitive.tuple.html)K, V[)](https://notriddle.com/notriddle-rustdoc-test/std/primitive.tuple.html)> for [BTreeMap](https://notriddle.com/notriddle-rustdoc-test/std/collections/struct.BTreeMap.html)<K, V>

After:

* impl [ToSocketAddrs](https://doc.rust-lang.org/nightly/std/net/trait.ToSocketAddrs.html) for ([IpAddr](https://doc.rust-lang.org/nightly/std/net/enum.IpAddr.html), [u16](https://doc.rust-lang.org/nightly/std/primitive.u16.html))
* impl<K, V> [FromIterator](https://notriddle.com/notriddle-rustdoc-test/std/iter/trait.FromIterator.html)<[(K, V)](https://notriddle.com/notriddle-rustdoc-test/std/primitive.tuple.html)> for [BTreeMap](https://notriddle.com/notriddle-rustdoc-test/std/collections/struct.BTreeMap.html)<K, V>
2022-06-19 15:26:27 +02:00
Michael Howell
b068e6aeb7 Add test cases for tuples with links 2022-06-18 10:35:19 -07: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
Sprite
713578b827 Exclude cfg "doc" and "doctest" from feature doc_auto_cfg 2022-06-16 01:11:29 +08:00
Sprite
9aa1ccdae8 Fix cfg(not) and cfg(all) causing Rustdoc stab to disappear 2022-06-16 01:11:26 +08:00