| Age | Commit message (Collapse) | Author | Lines |
|
Use an SVG image for clipboard instead of unicode character
Linked to https://github.com/rust-lang/docs.rs/pull/1394.
cc `@jsha`
r? `@Nemo157`
|
|
rustdoc: Implement `is_primitive` in terms of `primitive_type()`
Previously, they disagreed about what types were primitives.
r? `@GuillaumeGomez`
|
|
|
|
|
|
|
|
|
|
Migrate top doc and non-exhaustive toggles to details tag
Fixes #83332.
r? `@jsha`
|
|
|
|
|
|
Now, in the case that the function is not inlined, the panic location
will be the caller's location, which is more helpful since the panic is
not `expect_real()`'s fault.
|
|
This function returned a fake `DefIndex`, with no indication that it was
fake, when it was provided with a `FakeDefId::Fake`. Every use of the
function uses the returned `DefIndex` in a call to
`tcx.local_def_id_to_hir_id()`, which I'm pretty sure would panic if it
were given a fake `DefIndex`.
I removed the function and replaced all calls to it with a call to
`expect_real()` followed by `DefId::expect_local()` (that's a function
on the *real* `DefId`).
|
|
rustdoc: Stop special casing `broken_intra_doc_links` unnecessarily
|
|
rustdoc: Link to the docs on namespaces when an unknown disambiguator is found
This was reverted in https://github.com/rust-lang/rust/pull/84950; this re-lands the changes, but without different behavior depending on the channel.
r? `@camelid` cc `@pietroalbini`
|
|
|
|
Unify rustc and rustdoc parsing of `cfg()`
This extracts a new `parse_cfg` function that's used between both.
- Treat `#[doc(cfg(x), cfg(y))]` the same as `#[doc(cfg(x)]
#[doc(cfg(y))]`. Previously it would be completely ignored.
- Treat `#[doc(inline, cfg(x))]` the same as `#[doc(inline)]
#[doc(cfg(x))]`. Previously, the cfg would be ignored.
- Pass the cfg predicate through to rustc_expand to be validated
Technically this is a breaking change, but doc_cfg is still nightly so I don't think it matters.
Fixes https://github.com/rust-lang/rust/issues/84437.
r? `````````@petrochenkov`````````
|
|
GuillaumeGomez:remove-unneeded-with_default_session_globals, r=jyn514
Remove unneeded call to with_default_session_globals in rustdoc highlight
This was the origin of the `Span` bug in https://github.com/rust-lang/rust/pull/84176.
cc `````@Aaron1011`````
r? `````@jyn514`````
|
|
|
|
|
|
|
|
|
|
metadata
|
|
|
|
That PR caused multiple test failures when Rust's channel is changed
from nightly to anything else. The commit will have to be landed again
after the test suite is fixed.
|
|
|
|
r=jyn514,GuillaumeGomez
Get rid of fake `DefId`s in rustdoc
Right now there are *many* errors left, but I wanted to show the current state since all that is left to do is fixing the errors.
Resolves #83183
r? `@jyn514`
|
|
|
|
Valid underscores in hex/octal/binary literal docs
Currently hex/octal/binary literals with computed values are displayed like `0_xff_fff_fffu32`, which is invalid since underscores can't be in the middle of integer prefixes. This properly formats prefixed integers.
This causes [`std::u32::MAX`](https://doc.rust-lang.org/std/u32/constant.MAX.html) to be displayed as
```rust
pub const MAX: u32 = u32::MAX; // 0_xff_fff_fffu32
```
This PR changes it to be displayed as:
```rust
pub const MAX: u32 = u32::MAX; // 0xffff_ffffu32
```
|
|
Currently hex/octal/binary literals with computed values are displayed
like `0_xff_fff_fffu32`, which is invalid since underscores can't be in
the middle of integer prefixes. This properly formats prefixed integers.
|
|
- Don't duplicate DefKind -> ItemType handling; that's a good way to get bugs
- Use exhaustive match
- Add comments
This found that register_res is very wrong in at least one way: if it
registers a Res for `Variant`, it should also register one for `Field`.
But I don't know whether the one for Variant should be removed or Field
added. Maybe someone has ideas?
|
|
This extracts a new `parse_cfg` function that's used between both.
- Treat `#[doc(cfg(x), cfg(y))]` the same as `#[doc(cfg(x)]
#[doc(cfg(y))]`. Previously it would be completely ignored.
- Treat `#[doc(inline, cfg(x))]` the same as `#[doc(inline)]
#[doc(cfg(x))]`. Previously, the cfg would be ignored.
- Pass the cfg predicate through to rustc_expand to be validated
Co-authored-by: Vadim Petrochenkov <vadim.petrochenkov@gmail.com>
|
|
|
|
More grammar
|
|
Do not print visibility in external traits
This PR fixes the bug that caused traits, which were re-exported, having visibility modifiers in front of methods, which is invalid.
It would be nice to add a test for this, but I don't even know if tests with multiple crates are possible.
Resolves #81274
|
|
RustDoc: Fix bounds linking trait.Foo instead of traitalias.Foo
Fixes #84782
The code was assuming `Trait` when adding bounds to the cache, so add a check on the DefId to see what its kind really is.
r? `@jyn514`
Before:

After:

|
|
Migrate trait and impl blocks' toggles into
Part of #83332
After this, I think only the "global" doc comment will be used as JS toggle. Once this PR is merged, I check what remains and remove them.
There is one change that this PR brings:


As you can see, I had to move the "undocumented" items below, they're not mixed with the others anymore. Unfortunately, I don't see a way to keep the current appearance without JS. As a a reminder, currently it looks like this:


r? `@jsha`
|
|
|
|
|
|
|
|
shrink doctree::Module
helps https://github.com/rust-lang/rust/issues/76382
|
|
|
|
|
|
|
|
added --no-run option for rustdoc
resolve #59053
add `--no-run` option for `rustdoc` for compiling doc test but not running them.
Intended for use with `--persist-doctests`.
|
|
|
|
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
|
|
Reset the docs' copy path button after 1 second
I like that this copy path button on the top next to the type/module's name changes to a check mark when you successfully clicked and copied the path but I find it really weird how the icon stays that check mark forever after the first time of clicking it. Imagine you leave that documentation tab open and come back after 2 hours and you still see that check mark in that box because you copied the path 2 hours ago. You will probably be confused and you might've forgotten what that button even does (even more so currently where this is a new feature, or when you simply don't use it often), so I really think at some point it should go back to the ⎘ icon which, at least to me, pretty clearly indicates copying, whereas the check mark (if it stays there for so long) could falsely look like a verification mark indicating "this module is verified" or something like that.
I believe after a longer period of time it's not logical to still tell the user "yes you've copied this successful".
In addition to this timeout, maybe it could be made so that you can't copy again until this cooldown of 1 second is over, but I'm not sure how useful or user-friendly that feature would be so maybe it's fine the way it is now.
Also the timeout is cleared every time you click again so if you constantly click it, it won't reset during that.
|
|
r=jyn514
rustdoc: Only store locations in Cache::extern_locations and calculate the other info on-demand
help #84588
|
|
It can be calculated on-demand.
|
|
|
|
|