Commit graph

9466 commits

Author SHA1 Message Date
Guillaume Gomez
fc1c858a48 Remove Clean trait implementation for hir::TypeBindingKind 2022-07-31 14:24:13 +02:00
Guillaume Gomez
9dd59ddfbf Remove Clean trait implementation for hir::TypeBinding 2022-07-31 14:21:07 +02:00
Guillaume Gomez
279af1d7e0 Remove Clean trait implementation for hir::Path 2022-07-31 14:17:23 +02:00
Matthias Krüger
55258de97a
Rollup merge of #99950 - GuillaumeGomez:rm-clean-impls, r=Dylan-DPC
Remove more Clean trait implementations

This time it even allowed to remove a function.

Follow-up of https://github.com/rust-lang/rust/pull/99638.

r? `@notriddle`
2022-07-30 22:51:01 +02:00
Matthias Krüger
852bf84c7b
Rollup merge of #99873 - notriddle:notriddle/invalid-html-tags-webcomponents, r=GuillaumeGomezp
rustdoc: align invalid-html-tags lint with commonmark spec
2022-07-30 22:50:57 +02:00
bors
038f9e6bef Auto merge of #99948 - Dylan-DPC:rollup-ed5136t, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #99311 (change maybe_body_owned_by to take local def id)
 - #99862 (Improve type mismatch w/ function signatures)
 - #99895 (don't call type ascription "cast")
 - #99900 (remove some manual hash stable impls)
 - #99903 (Add diagnostic when using public instead of pub)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-30 17:30:50 +00:00
Michael Howell
ad197e414c
Update src/librustdoc/passes/html_tags.rs
Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-07-30 09:02:05 -07:00
Guillaume Gomez
c407ef0de0 Remove Clean trait implementation for hir::VariantData 2022-07-30 17:48:06 +02:00
Guillaume Gomez
21c812aa7a Remove Clean trait implementation for ty::VariantDef 2022-07-30 17:34:29 +02:00
Dylan DPC
c668820365
Rollup merge of #99311 - kckeiks:clean-up-body-owner-methods, r=cjgillot
change maybe_body_owned_by to take local def id

Issue https://github.com/rust-lang/rust/issues/96341
r? `@cjgillot`
2022-07-30 20:39:46 +05:30
bors
1202bbaf48 Auto merge of #99887 - nnethercote:rm-TreeAndSpacing, r=petrochenkov
Remove `TreeAndSpacing`.

A `TokenStream` contains a `Lrc<Vec<(TokenTree, Spacing)>>`. But this is
not quite right. `Spacing` makes sense for `TokenTree::Token`, but does
not make sense for `TokenTree::Delimited`, because a
`TokenTree::Delimited` cannot be joined with another `TokenTree`.

This commit fixes this problem, by adding `Spacing` to `TokenTree::Token`,
changing `TokenStream` to contain a `Lrc<Vec<TokenTree>>`, and removing the
`TreeAndSpacing` typedef.

The commit removes these two impls:
- `impl From<TokenTree> for TokenStream`
- `impl From<TokenTree> for TreeAndSpacing`

These were useful, but also resulted in code with many `.into()` calls
that was hard to read, particularly for anyone not highly familiar with
the relevant types. This commit makes some other changes to compensate:
- `TokenTree::token()` becomes `TokenTree::token_{alone,joint}()`.
- `TokenStream::token_{alone,joint}()` are added.
- `TokenStream::delimited` is added.

This results in things like this:
```rust
TokenTree::token(token::Semi, stmt.span).into()
```
changing to this:
```rust
TokenStream::token_alone(token::Semi, stmt.span)
```
This makes the type of the result, and its spacing, clearer.

These changes also simplifies `Cursor` and `CursorRef`, because they no longer
need to distinguish between `next` and `next_with_spacing`.

r? `@petrochenkov`
2022-07-30 14:50:05 +00:00
Yuki Okushi
cfbf7be7d0
Rollup merge of #99904 - GuillaumeGomez:cleanup-html-whitespace, r=notriddle
Cleanup html whitespace

I realized while looking at the raw HTML that we generated some unwanted white space characters. This PR cleans up the one coming directly from rustdoc. I'll check from `pulldown-cmark` for the remaining ones.

Some numbers now: the difference is small, it goes from `63009` to `62859`. But multiplied by the number of files, it becomes quite interesting overall.

r? `@notriddle`
2022-07-30 07:39:56 +09:00
Miguel Guarniz
25bdc8965e Change maybe_body_owned_by to take local def id
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-07-29 18:25:58 -04:00
est31
fabb4b0661 Statically ensure the size of ItemKind 2022-07-29 19:30:25 +02: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
est31
0bf65c7c92 Remove box_syntax feature gate from librustdoc 2022-07-29 19:30:25 +02:00
est31
79246e8e9a Remove box syntax from doctest.rs 2022-07-29 19:30:25 +02:00
est31
e62f6a0e87 Remove box syntax from Box<rustdoc::clean::types::ItemKind> construction
The type has 240 bytes according to compiler internal rustdoc.
2022-07-29 19:30:23 +02:00
Guillaume Gomez
6149cf982c Remove unwanted extra white space characters from HTML 2022-07-29 14:38:15 +02:00
Yuki Okushi
51dda5067c
Rollup merge of #99850 - GuillaumeGomez:clean-more-items, r=notriddle
rustdoc: Remove more Clean trait implementations

Follow-up of https://github.com/rust-lang/rust/pull/99638.

r? `@notriddle`
2022-07-29 15:40:03 +09:00
Nicholas Nethercote
332dffb1f9 Remove TreeAndSpacing.
A `TokenStream` contains a `Lrc<Vec<(TokenTree, Spacing)>>`. But this is
not quite right. `Spacing` makes sense for `TokenTree::Token`, but does
not make sense for `TokenTree::Delimited`, because a
`TokenTree::Delimited` cannot be joined with another `TokenTree`.

This commit fixes this problem, by adding `Spacing` to `TokenTree::Token`,
changing `TokenStream` to contain a `Lrc<Vec<TokenTree>>`, and removing the
`TreeAndSpacing` typedef.

The commit removes these two impls:
- `impl From<TokenTree> for TokenStream`
- `impl From<TokenTree> for TreeAndSpacing`

These were useful, but also resulted in code with many `.into()` calls
that was hard to read, particularly for anyone not highly familiar with
the relevant types. This commit makes some other changes to compensate:
- `TokenTree::token()` becomes `TokenTree::token_{alone,joint}()`.
- `TokenStream::token_{alone,joint}()` are added.
- `TokenStream::delimited` is added.

This results in things like this:
```rust
TokenTree::token(token::Semi, stmt.span).into()
```
changing to this:
```rust
TokenStream::token_alone(token::Semi, stmt.span)
```
This makes the type of the result, and its spacing, clearer.

These changes also simplifies `Cursor` and `CursorRef`, because they no longer
need to distinguish between `next` and `next_with_spacing`.
2022-07-29 15:52:15 +10:00
Michael Howell
f5cd6b3e9b rustdoc: align invalid-html-tags lint with commonmark spec 2022-07-28 13:12:32 -07:00
Dylan DPC
862074f7b0
Rollup merge of #99817 - notriddle:notriddle/clean-trait-removal, r=GuillaumeGomez
rustdoc: remove Clean trait impls for more items

Follow up to https://github.com/rust-lang/rust/pull/99638 and https://github.com/rust-lang/rust/pull/99672
2022-07-28 22:14:49 +05:30
Dylan DPC
3c4a66d04e
Rollup merge of #99810 - GuillaumeGomez:fix-settings-slider-small-width, r=notriddle
Fix settings slider on small width screens

Fixes #99794.

Screenshot of the fix:

![Screenshot from 2022-07-27 14-17-08](https://user-images.githubusercontent.com/3050060/181250007-55f982d1-89db-45b7-a4f1-0d1729e6a3e3.png)

cc `````@jsha`````
r? `````@notriddle`````
2022-07-28 16:38:31 +05:30
Guillaume Gomez
660dc6f393 Remove Clean trait implementation for VariantData fields 2022-07-28 13:08:08 +02:00
Guillaume Gomez
961dce44a9 Remove Clean trait implementation for VariantStruct 2022-07-28 13:05:19 +02:00
Guillaume Gomez
c2c70e20bc Remove Clean trait implementation for ty::Visibility 2022-07-28 11:52:59 +02:00
Michael Howell
2f03cbdc8e rustdoc: remove Clean trait impl for ty::GenericParamDef 2022-07-27 11:13:39 -07:00
Michael Howell
3ea9916625 rustdoc: remove Clean trait impl for hir::Term 2022-07-27 11:08:22 -07:00
Michael Howell
8aca8835a0 rustdoc: remove Clean trait impl for ty::Term 2022-07-27 11:04:54 -07:00
Guillaume Gomez
2d52aa05d1
Rollup merge of #99812 - GuillaumeGomez:fix-headings-colors, r=jsha,notriddle
Fix headings colors

Fixes #99797.

![image](https://user-images.githubusercontent.com/3050060/181260966-49faf9d3-f6b8-4de4-bc7d-ed9f0467cf68.png)

cc `@jsha`
r? `@notriddle`
2022-07-27 17:55:08 +02:00
Guillaume Gomez
dda74fe8c9
Rollup merge of #99710 - davidtwco:internal-lint-opts, r=lcnr
lint: add bad opt access internal lint

Prompted by [Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/sess.2Ecrate_types.28.29.20vs.20sess.2Eopts.2Ecrate_types/near/290682847).

Some command-line options accessible through `sess.opts` are best accessed through wrapper functions on `Session`, `TyCtxt` or otherwise, rather than through field access on the option struct in the `Session`.

Adds a new lint which triggers on those options that should be accessed through a wrapper function so that this is prohibited. Options are annotated with a new attribute `rustc_lint_opt_deny_field_access` which can specify the error message (i.e. "use this other function instead") to be emitted.

A simpler alternative would be to simply rename the options in the option type so that it is clear they should not be used, however this doesn't prevent uses, just discourages them. Another alternative would be to make the option fields private, and adding accessor functions on the option types, however the wrapper functions sometimes rely on additional state from `Session` or `TyCtxt` which wouldn't be available in an function on the option type, so the accessor would simply make the field available and its use would be discouraged too.

**Leave a comment if there's an option I should add this to.**
2022-07-27 17:55:05 +02:00
Guillaume Gomez
88b137d5fe Fix headings border 2022-07-27 15:36:27 +02:00
Guillaume Gomez
4df8e78a59 Fix invalid css property value 2022-07-27 15:00:43 +02:00
Guillaume Gomez
9d118c5dca Fix settings display on small screen size 2022-07-27 14:45:12 +02:00
David Wood
f5e005f0ca session: disable internal lints for rustdoc
If an internal lint uses `typeck_results` or similar queries then that
can result in rustdoc checking code that it shouldn't (e.g. from other
platforms) and emit compilation errors.

Signed-off-by: David Wood <david.wood@huawei.com>
2022-07-27 11:24:27 +01:00
Yuki Okushi
d425979f43
Rollup merge of #99783 - notriddle:notriddle/clean-trait-removal, r=GuillaumeGomez
rustdoc: remove Clean trait impls for more items

Follow up to #99638 and	#99672
2022-07-27 19:05:35 +09:00
Yuki Okushi
0d5bdcac5f
Rollup merge of #99775 - notriddle:notriddle/as-str, r=camelid
rustdoc: do not allocate String when writing path full name

No idea if this makes any perf difference, but it just seems like premature pessimisation to use String when str will do.
2022-07-27 11:52:59 +09:00
Yuki Okushi
f8f07dece7
Rollup merge of #99771 - GuillaumeGomez:update-pulldown-cmark, r=Urgau
Update pulldown-cmark version to 0.9.2 (fixes url encoding for some chars)

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

r? ``@Dylan-DPC``
2022-07-27 11:52:58 +09: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
Michael Howell
9dcf1d9c1a rustdoc: remove Clean trait impl for ty::PolyTraitPredicate 2022-07-26 15:33:17 -07:00
Michael Howell
e94ef5cc76 rustdoc: remove Clean trait impls for ty::OutlivesPredicate 2022-07-26 15:33:13 -07:00
Michael Howell
791beb7a5c rustdoc: remove Clean trait impl for ProjectionPredicate 2022-07-26 15:33:10 -07:00
Michael Howell
4443fd5d76 rustdoc: remove Clean trait impl for ProjectionTy 2022-07-26 15:33:04 -07:00
Michael Howell
b8fb6e1032 rustdoc: do not allocate String when writing path full name
No idea if this makes any perf difference, but it just seems like premature
pessimisation to use String when str will do.
2022-07-26 12:23:59 -07:00
Guillaume Gomez
7f78a9acc5 Update pulldown-cmark version 2022-07-26 20:36:20 +02:00
Matthias Krüger
811b4b890a
Rollup merge of #99235 - WaffleLapkin:rustdoc_implement_support_for_must_implement, r=GuillaumeGomez
rustdoc: Add support for `#[rustc_must_implement_one_of]`

This PR adds support for `#[rustc_must_implement_one_of]` attribute added in #92164. There is a desire to eventually use this attribute of `Read`, so making it show up in docs is a good thing.

I "stole" the styling from cfg notes, not sure what would be a proper styling. Currently it looks like this:
![2022-07-14_15-00](https://user-images.githubusercontent.com/38225716/178968170-913c1dd5-8875-4a95-9848-b075a0bb8998.png)

<details><summary>Code to reproduce</summary>
<p>

```rust
#![feature(rustc_attrs)]

#[rustc_must_implement_one_of(a, b)]
pub trait Trait {
    fn req();
    fn a(){ Self::b() }
    fn b(){ Self::a() }
}
```

</p>
</details>
2022-07-26 16:57:46 +02: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