| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
It's not obvious why this was ever a separate class name, since even
in c4219a478354b464079b1b7ab081e071e8e39765 when it was first added,
it was styled identically to regular `fn` links.
|
|
|
|
|
|
Rollup of 13 pull requests
Successful merges:
- #103842 (Adding Fuchsia compiler testing script, docs)
- #104354 (Remove leading newlines from `NonZero*` doc examples)
- #104372 (Update compiler-builtins)
- #104380 (rustdoc: remove unused CSS `code { opacity: 1 }`)
- #104381 (Remove dead NoneError diagnostic handling)
- #104383 (Remove unused symbols and diagnostic items)
- #104391 (Deriving cleanups)
- #104403 (Specify language of code comment to generate document)
- #104404 (Fix missing minification for static files)
- #104413 ([llvm-wrapper] adapt for LLVM API change)
- #104415 (rustdoc: fix corner case in search keyboard commands)
- #104422 (Fix suggest associated call syntax)
- #104426 (Add test for #102154)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
rustdoc: Resolve doc links in external traits having local impls
For external impls it was done in https://github.com/rust-lang/rust/pull/103192 right away, but the local impl case was forgotten.
Fixes https://github.com/rust-lang/rust/issues/104145.
|
|
r=notriddle
Fix missing reexports' doc comments
Fixes #81893.
The issue was that an import directly "links" to the target without the intermediate imports. Unfortunately, to fix this bug we need to go through them one by one. To do so, I take the import path direct parent (so `b` in `a::b::c`) and then look for `c` into it.
r? `@notriddle`
|
|
|
|
r=GuillaumeGomez
rustdoc: use consistent "popover" styling for notable traits
Follow-up to #104129
Fixes https://github.com/rust-lang/rust/issues/104313.
Preview: https://notriddle.com/notriddle-rustdoc-demos/js-notable-trait-v2/std/iter/trait.Iterator.html#method.step_by
## Before


## After


|
|
rustdoc: change `.src-line-numbers > span` to `.src-line-numbers > a`
Example: https://notriddle.com/notriddle-rustdoc-demos/line-anchors/test_dingus/fn.test.html
This allows people to treat them like real links, such as right-click to copy URL, and makes the line numbers in a scraped example work at all, when before this commit was added, they had the clickable pointer cursor but did not actually do anything when clicked.
|
|
|
|
|
|
|
|
Fixes #102576
|
|
r=cjgillot,GuillaumeGomez
rustdoc: various cross-crate reexport fixes
Fixes for various smaller cross-crate reexport issues.
The PR is split into several commits for easier review. Will be squashed after approval.
Most notable changes:
* We finally render late-bound lifetimes in the generic parameter list of cross-crate functions & methods.
Previously, we would display the re-export of `pub fn f<'s>(x: &'s str) {}` as `pub fn f(x: &'s str)`
* We now render unnamed parameters of cross-crate functions and function pointers as underscores
since that's exactly what we do for local definitions, too. Mentioned as a bug in #44306.
* From now on, the rendering of cross-crate trait-object types is more correct:
* `for<>` parameter lists (for higher-ranked lifetimes) are now shown
* the return type of `Fn{,Mut,Once}` trait bounds is now displayed
Regarding the last list item, here is a diff for visualization (before vs. after):
```patch
- dyn FnOnce(&'any str) + 'static
+ dyn for<'any> FnOnce(&'any str) -> bool + 'static
```
The redundant `+ 'static` will be removed in a follow-up PR that will hide trait-object lifetime-bounds if they coincide with [their default](https://doc.rust-lang.org/reference/lifetime-elision.html#default-trait-object-lifetimes) (see [Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/clean_middle_ty.3A.20I.20need.20to.20add.20a.20parameter/near/307143097)). `FIXME(fmease)`s were added.
``@rustbot`` label A-cross-crate-reexports
r? ``@GuillaumeGomez``
|
|
rustdoc: add hash to filename of toolchain files
All static files used by rustdoc are now stored in static.files/ and their filenames include a hash of their contents. Their filenames no longer include the contents of the --resource-suffix flag. This clarifies caching semantics. Anything in static.files can use Cache-Control: immutable because any updates will show up as a new URL.
Invocation-specific files like crates-NN.js, search-index-NN.js, and sidebar-items-NN.js still get the resource suffix.
This has a useful side effect: once toolchain files aren't affected by resource suffix, it will become possible for docs.rs to include crate version in the resource suffix. That should fix a caching issue with `/latest/` URLs: https://github.com/rust-lang/docs.rs/issues/1593. My goal is that it should be safe to serve all rustdoc JS, CSS, and fonts with infinite caching headers, even when new versions of a crate are uploaded in the same place as old versions.
The --disable-minification flag is removed because it would vary the output of static files based on invocation flags. Instead, for rustdoc development purposes it's preferable to symlink static files to a non-minified copy for quick iteration.
Example listing:
```
$ cd build/x86_64-unknown-linux-gnu/doc/ && find . | egrep 'js$|css$' | egrep -v 'sidebar-items|implementors' | sort
./crates1.65.0.js
./rust.css
./search-index1.65.0.js
./source-files1.65.0.js
./static.files/ayu-2bfd0af01c176fd5.css
./static.files/dark-95d11b5416841799.css
./static.files/light-c83a97e93a11f15a.css
./static.files/main-efc63f77fb116394.js
./static.files/normalize-76eba96aa4d2e634.css
./static.files/noscript-5bf457055038775c.css
./static.files/rustdoc-7a422337900fa894.css
./static.files/scrape-examples-3dd10048bcead3a4.js
./static.files/search-47f3c289722672cf.js
./static.files/settings-17b08337296ac774.js
./static.files/settings-3f95eacb845293c0.css
./static.files/source-script-215e9db86679192e.js
./static.files/storage-26d846fcae82ff09.js
```
Fixes #98413
|
|
as well as some FIXMEs
|
|
where-clause to param declaration site
I've overlooked this in #103190.
|
|
function pointers
for consistency with the way we display local definitions (cleaned from HIR, not from rustc_middle).
|
|
cross-crate functions and methods
|
|
Properly render asyncness for trait fns without default body
We weren't properly desugaring async fns in traits unless they had default bodies (in which case rustdoc treats them much like they came from an impl).
cc ```@yoshuawuyts``` should help with https://rust-lang.zulipchat.com/#narrow/stream/330606-wg-async.2Fasync-fn-in-trait-impl/topic/type.20inside.20.60async.20fn.60.20body.20must.20be.20known.20in.20this.20context/near/306894869
|
|
|
|
|
|
rustdoc: Do not add external traits to the crate in `register_res`
It's not clear why it was done, and apparently it's no longer necessary now.
Such additions are unpredictable for early doc link resolution and would force us to collect all doc links from all external traits.
Fixes https://github.com/rust-lang/rust/issues/103463
|
|
rustdoc: rename syntax highlighting CSS class `attribute` to `attr`
Link classes use the abbreviation `attr` ...
https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L255-L259
... so why does syntax highlighting use the full word?
https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L1095-L1097
|
|
r=notriddle
Remove generation of tuple struct fields in the search index
This comes from [this discussion](https://github.com/rust-lang/rust/pull/103710) as they're not very useful.
r? `@notriddle`
|
|
This allows people to treat them like real links, such as right-click to
copy URL, and makes the line numbers in a scraped example work at all,
when before this commit was added, they had the clickable pointer cursor
but did not actually do anything when clicked.
|
|
Link classes use the abbreviation `attr`, so why shouldn't
syntax highlighting?
|
|
|
|
r=GuillaumeGomez
rustdoc: add support for incoherent impls on structs and traits
Fixes #103170
|
|
It's not clear why it was done, and apparently it's no longer necessary now.
Such additions are unpredictable for early doc link resolution and would force us to collect all doc links from all external traits.
|
|
Fixes #103170
|
|
r=Mark-Simulacrum
rustdoc: add test case for masked blanket impl
|
|
|
|
All static files used by rustdoc are now stored in static.files/ and
include a hash of their contents. They no longer include the contents of
the --resource-suffix flag. This clarifies caching semantics. Anything
in static.files can use Cache-Control: immutable because any updates
will show up as a new URL.
Invocation-specific files like crates-NN.js, search-index-NN.js,
and sidebar-items-NN.js still get the resource suffix.
The --disable-minification flag is removed because it would vary the
output of static files based on invocation flags. Instead, for
rustdoc development purposes it's preferable to symlink static files
to a non-minified copy for quick iteration.
|
|
r=notriddle
Fix unwanted merge of inline doc comments for impl blocks
Fixes https://github.com/rust-lang/rust/issues/102909.
We need this merge mechanism for inlined items but it's completely unwanted for impl blocks (at least the doc comments are, not the other attributes) since we want to keep what `cfg()` is put on the `pub use` or other attributes.
r? ``@notriddle``
|
|
Clean return-position `impl Trait` in traits correctly in rustdoc
Fixes #103403
|
|
rustdoc: don't mark Box<T> as Iterator, Read, etc
Because Box<T> has pass-through implementations, rustdoc was giving it the "Notable Traits" treatment for Iterator, Read, Write, and Future, even when the type of T was unspecified.
Pin had the same problem, but just for Future.
Fixes #100320
|
|
|
|
Because Box<T> has pass-through implementations, rustdoc was giving it the
"Notable Traits" treatment for Iterator, Read, Write, and Future, even when the
type of T was unspecified.
Pin had the same problem, but just for Future.
|
|
rustdoc: do not filter out cross-crate `Self: Sized` bounds
All type parameters **except `Self`** are implicitly `Sized` ([via](https://doc.rust-lang.org/nightly/std/marker/trait.Sized.html)). Previously, we disregarded the exception of `Self` and omitted cross-crate `Sized` bounds of *any* type parameter *including* `Self` when rendering.
From now on, we *do* render cross-crate `Self: Sized` bounds.
Most notably, in `std` we now finally properly render the `Sized` bound of the `Clone` trait as well as the `Self: Sized` bound on `Iterator::map`.
Fixes #24183.
``@rustbot`` label T-rustdoc A-cross-crate-reexports
r? rustdoc
|
|
Delay ambiguity span bug in normalize query iff not rustdoc
Oli and I decided that the compiler debt of adding another usage of `tcx.sess.opts.actually_rustdoc` is fine, because we don't really want to add more complexity to the normalize query, and moving rustdoc to use fulfill normalization (`fully_normalize`, i.e. not use the normalize query) is unnecessary overhead given that it's skipping binders and stuff.
r? oli-obk
Fixes #102827
Fixes #103181
|
|
|
|
|
|
|
|
|
|
|