Mark Rousskov
917f6540ed
Re-format code with new rustfmt
2023-11-15 21:45:48 -05:00
David Tolnay
dccf10e989
Descriptive variant name deprecation versions outside the standard library
2023-10-30 17:13:26 -07:00
David Tolnay
e8868af75b
Represent absence of 'since' attribute as a variant of DeprecatedSince
2023-10-30 16:46:02 -07:00
David Tolnay
b106167673
Add a DeprecatedSince::Err variant for versions that fail to parse
2023-10-30 15:41:18 -07:00
David Tolnay
2fe7d17bd9
Store version of deprecated attribute in structured form
2023-10-29 22:42:32 -07:00
Michael Howell
b67985e113
rustdoc: wrap Type with Box instead of Generics
...
When these `Box<Generics>` types were introduced,
`Generics` was made with `Vec` and much larger.
Now that it's made with `ThinVec`, `Type` is bigger
and should be boxed instead.
2023-10-22 22:50:25 -07:00
Matthias Krüger
4dd4d9b489
Rollup merge of #115439 - fmease:rustdoc-priv-repr-transparent-heuristic, r=GuillaumeGomez
...
rustdoc: hide `#[repr(transparent)]` if it isn't part of the public ABI
Fixes #90435 .
This hides `#[repr(transparent)]` when the non-1-ZST field the struct is "transparent" over is private.
CC `@RalfJung`
Tentatively nominating it for the release notes, feel free to remove the nomination.
`@rustbot` label needs-fcp relnotes A-rustdoc-ui
2023-10-14 19:22:16 +02:00
Oli Scherer
c4e61faf2e
Hide host effect params from docs
2023-10-12 16:14:54 +00:00
bors
be581d9f82
Auto merge of #116142 - GuillaumeGomez:enum-variant-display, r=fmease
...
[rustdoc] Show enum discrimant if it is a C-like variant
Fixes https://github.com/rust-lang/rust/issues/101337 .
We currently display values for associated constant items in traits:

And we also display constant values like [here](file:///home/imperio/rust/rust/build/x86_64-unknown-linux-gnu/doc/std/f32/consts/constant.E.html).
I think that for coherency, we should display values of C-like enum variants.
With this change, it looks like this:

As for the display of the constant value itself, I used what we already have to keep coherency.
We display the C-like variants value in the following scenario:
1. It is a C-like variant with a value set => all the time
2. It is a C-like variant without a value set: All other variants are C-like variants and at least one them has its value set.
Here is the result in code:
```rust
// Ax and Bx value will be displayed.
enum A {
Ax = 12,
Bx,
}
// Ax and Bx value will not be displayed
enum B {
Ax,
Bx,
}
// Bx value will not be displayed
enum C {
Ax(u32),
Bx,
}
// Bx value will not be displayed, Cx value will be displayed.
#[repr(u32)]
enum D {
Ax(u32),
Bx,
Cx = 12,
}
```
r? `@notriddle`
2023-10-09 13:18:47 +00:00
León Orell Valerian Liehr
67de1509f3
rustdoc: fix & clean up handling of cross-crate higher-ranked lifetimes
2023-10-03 17:16:51 +02:00
Guillaume Gomez
a576dfd0c6
Show enum variant value if it is a C-like variant
2023-09-25 15:01:13 +02:00
León Orell Valerian Liehr
64fa12a4fb
rustdoc: hide repr(transparent) if it isn't part of the public ABI
2023-09-18 19:30:10 +02:00
bors
70c7e4d21c
Auto merge of #114855 - Urgau:rustdoc-typedef-inner-variants, r=GuillaumeGomez
...
rustdoc: show inner enum and struct in type definition for concrete type
This PR implements the [Display enum variants for generic enum in type def page](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Display.20enum.20variants.20for.20generic.20enum.20in.20type.20def.20page ) #rustdoc/zulip proposal.
This proposal comes from looking at [`TyKind`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/sty/type.TyKind.html ) typedef from the compiler. On that page, the documentation is able to show the layout for each variant, but not the variants themselves. This proposal suggests showing the fields and variants for those "concrete type". This would mean that instead of having many unresolved generics, like in `IrTyKind`:
```rust
Array(I::Ty, I::Const),
Slice(I::Ty),
RawPtr(I::TypeAndMut),
Ref(I::Region, I::Ty, I::Mutability),
FnDef(I::DefId, I::GenericArgsRef),
```
those would be resolved with direct links to the proper types in the `TyKind` typedef page:
```rust
Array(Ty<'tcx>, Const<'tcx>),
Slice(Ty<'tcx>),
RawPtr(TypeAndMut<'tcx>),
Ref(Region<'tcx>, Ty<'tcx>, Mutability<'tcx>),
FnDef(DefId<'tcx>, GenericArgsRef<'tcx>),
```
Saving both time and confusion.
-----
<details>
<summary>Old description</summary>
I've chosen to add the enums and structs under the "Show Aliased Type" details, as well as showing the variants and fields under the usual "Variants" and "Fields" sections. ~~*under new the `Inner Variants` and `Inner Fields` sections (except for their names, they are identical to the one found in the enum, struct and union pages). Those sections are complementary and do not replace anything else.*~~
This PR proposes the following condition for showing the aliased type (basically, has the aliased type some generics that are all of them resolved):
- the typedef does NOT have any generics (modulo lifetimes)
- AND the aliased type has some generics
</details>
### Examples
```rust
pub enum IrTyKind<'a, I: Interner> {
/// Doc comment for AdtKind
AdtKind(&'a I::Adt),
/// and another one for TyKind
TyKind(I::Adt, I::Ty),
// no comment
StructKind { a: I::Adt, },
}
pub type TyKind<'a> = IrTyKind<'a, TyCtxt>;
```

<details>
<summary>Old</summary>



</details>
```rust
pub struct One<T> {
pub val: T,
#[doc(hidden)]
pub inner_tag: u64,
__hidden: T,
}
/// `One` with `u64` as payload
pub type OneU64 = One<u64>;
```

<details>
<summary>Old</summary>



</details>
r? `@GuillaumeGomez`
2023-09-07 16:23:03 +00:00
Ben Kimock
159ad5fb0d
Reuse const rendering from rustdoc in rmeta encoding
2023-09-01 17:22:48 -04:00
Urgau
2c35abe37c
rustdoc: show inner enum and struct in type definition for concrete type
2023-08-26 00:14:49 +02:00
Noah Lev
c90a5b2019
rustdoc-json: Rename typedef to type alias
2023-08-21 14:02:34 -07:00
Noah Lev
062d247cd7
rustdoc: Rename clean items from typedef to type alias
2023-08-21 13:56:22 -07:00
Guillaume Gomez
a1a94b1c0f
Improve code readability by moving fmt args directly into the string
2023-08-16 16:35:23 +02:00
León Orell Valerian Liehr
a011dd9dac
Render generic const items in rustdoc
2023-07-28 22:21:42 +02:00
Michael Howell
1862fcb1df
rustdoc: simplify clean by removing FnRetTy
...
The default fn ret ty is always unit. Just use that.
Looking back at the time when `FnRetTy` (then called
`FunctionRetTy`) was first added to rustdoc, it seems to originally
be there because `-> !` was a special form: the never type didn't
exist back then.
eb01b17b06 (diff-384affc1b4190940f114f3fcebbf969e7e18657a71ef9001da6b223a036687d9L921-L924)
2023-05-30 12:22:14 -07:00
Vadim Petrochenkov
4082053b00
rustdoc: Cleanup doc string collapsing
2023-05-22 19:35:35 +03:00
León Orell Valerian Liehr
61e1eda6db
IAT: Rustdoc integration
2023-05-04 16:59:11 +02:00
Michael Goulet
40a63cb06f
Make tools happy
2023-05-02 22:36:24 +00:00
Guillaume Gomez
b778688f91
Unify attributes retrieval for JSON and HTML rendering
2023-04-29 23:36:48 +02:00
Alona Enraght-Moony
2b7dd084a3
rustdoc-json: Time serialization.
2023-04-26 14:55:30 +00:00
Josh Soref
bb2f23c34f
Spelling librustdoc
...
* associated
* collected
* correspondence
* inlining
* into
* javascript
* multiline
* variadic
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2023-04-16 21:44:12 -04:00
KaDiWa
ad2b34d0e3
remove some unneeded imports
2023-04-12 19:27:18 +02:00
Guillaume Gomez
364e961417
Replace doc(primitive) with rustc_doc_primitive
2023-03-30 22:56:52 +02:00
Michael Goulet
be9fd75d32
rustdoc + rustdoc-json support for non_lifetime_binders
2023-03-28 16:50:49 +00:00
Michael Howell
49d995a4cf
rustdoc: reduce allocations when generating tooltips
...
An attempt to reduce the perf regression in
https://github.com/rust-lang/rust/pull/108052#issuecomment-1430631861
2023-02-22 21:00:10 -07:00
Guillaume Gomez
1ae875f0a3
Improve code readability
2023-02-18 18:28:17 +01:00
Guillaume Gomez
3adc081254
Fix bad handling of primitive types
2023-02-18 18:28:17 +01:00
Guillaume Gomez
0541a0c8c3
Allow reexports of items with same name but different types to both appear
2023-02-18 18:13:23 +01:00
Guillaume Gomez
86fd5a1b44
Use more let chain
2023-02-15 12:00:03 +01:00
Guillaume Gomez
cc8758480c
Fix small debug typo
2023-02-08 17:31:54 +01:00
Vadim Petrochenkov
68803926e0
rustdoc: Use DefId(Map,Set) instead of FxHash(Map,Set)
...
Not all uses are converted, a few cases iterating through maps/sets and requiring nontrivial changes are kept.
2023-01-22 02:12:05 +04:00
Guillaume Gomez
36c9b49c14
Remove unneeded ItemId::Primitive variant
2023-01-10 18:30:37 +01:00
Matthias Krüger
d214402128
Rollup merge of #106412 - GuillaumeGomez:fix-links-to-primitive-rustdoc-json, r=aDotInTheVoid
...
Fix link generation for local primitive types in rustdoc JSON output
Fixes https://github.com/rust-lang/rust/issues/104064 .
As mentioned in the issue, I'm not super happy about this fix which is more a hack rather than a sound-proof solution. However I couldn't find a better way to fix it.
r? `@aDotInTheVoid`
2023-01-04 23:39:50 +01:00
Guillaume Gomez
c9ebd73416
Remove unused match pattern for primitive types
2023-01-04 21:54:32 +01:00
Guillaume Gomez
59eee74ce8
Fix link generation for local primitive types in rustdoc JSON output
2023-01-03 18:30:05 +01:00
Nixon Enraght-Moony
cca5d219e6
Rustdoc-Json: Report discriminant on all kinds of enum variant.
...
Closes #106299
2023-01-01 19:48:26 +00:00
Nixon Enraght-Moony
b7b252a4f4
clean: Always store enum disriminant.
2023-01-01 18:11:53 +00:00
Nixon Enraght-Moony
881bd865ad
Rustdoc-Json: Don't include foreign traits
2022-12-02 16:58:10 +00:00
Vadim Petrochenkov
b32a4edb20
rustc_ast_lowering: Stop lowering imports into multiple items
...
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
2022-12-01 18:51:20 +03:00
Vadim Petrochenkov
7a5376d23c
Unreserve braced enum variants in value namespace
2022-11-21 22:40:06 +03:00
Martin Nordholts
8b5bfaf662
rustdoc JSON: Use Function everywhere and remove Method
2022-11-16 20:24:03 +01:00
cui fliter
442f848d74
fix some typos in comments
...
Signed-off-by: cui fliter <imcusg@gmail.com >
2022-11-13 15:26:17 +08:00
Michael Howell
a69d43493a
rustdoc: use ThinVec and Box<str> to shrink clean::ItemKind
2022-11-05 09:02:10 -07:00
Matthias Krüger
c6e5150441
Rollup merge of #103935 - GuillaumeGomez:remove-rustdoc-visibility-ty, r=notriddle
...
Remove rustdoc clean::Visibility type
Fixes #90852 .
Follow-up of https://github.com/rust-lang/rust/pull/103690 .
This PR completely removes the rustdoc `clean::Visibility` type to use the `rustc_middle` one instead. I don't think there will be any impact on perf.
r? `@notriddle`
2022-11-04 12:18:02 +01:00
Guillaume Gomez
df326946ed
Remove rustdoc clean::Visibility type
2022-11-03 18:15:24 +01:00