Commit graph

1381 commits

Author SHA1 Message Date
bors
f565016edd Auto merge of #95678 - pietroalbini:pa-1.62.0-bootstrap, r=Mark-Simulacrum
Bump bootstrap compiler to 1.61.0 beta

This PR bumps the bootstrap compiler to the 1.61.0 beta. The first commit changes the stage0 compiler, the second commit applies the "mechanical" changes and the third and fourth commits apply changes explained in the relevant comments.

r? `@Mark-Simulacrum`
2022-04-07 07:34:04 +00:00
Guillaume Gomez
56d0f9484b Update rustdoc test following DOM change 2022-04-06 20:41:57 +02:00
Pietro Albini
73dc13058d
remove ~const Drop from rustdoc test 2022-04-06 10:35:49 +02:00
Dylan DPC
bf44a87732
Rollup merge of #95645 - GuillaumeGomez:intra-doc-link-ice-traits-in-scope-primitive, r=jyn514
Fix intra doc link ICE when trying to get traits in scope for primitive

Fixes #95633.

I think ``@notriddle`` was the one who worked on this part of the code last so:

r? ``@notriddle``
2022-04-05 09:33:24 +02:00
bors
949b98cab8 Auto merge of #95337 - petrochenkov:doclink3, r=camelid
rustdoc: Fix resolution of `crate`-relative paths in doc links

Resolve `crate::foo` paths transparently to rustdoc, so their resolution no longer affects diagnostics and modules used for determining traits in scope.

The proper solution is to account for the current `module_id`/`parent_scope` in `fn resolve_crate_root`, but it's a slightly larger compiler changes. This PR moves the code closer to it, but keeps it rustdoc-specific.

Fixes https://github.com/rust-lang/rust/issues/78696
Fixes https://github.com/rust-lang/rust/issues/94924
2022-04-05 04:39:34 +00:00
Guillaume Gomez
50cc0fa8ab Add test to ensure rustdoc does not panic on intra doc link pass 2022-04-04 17:37:09 +02:00
Dylan DPC
5925c8ee79
Rollup merge of #95613 - GuillaumeGomez:fix-rustdoc-attr-display, r=notriddle
Fix rustdoc attribute display

Fixes #81482.

r? `@notriddle`
2022-04-03 23:21:43 +02:00
Guillaume Gomez
995513c929 Add test for attribute display in rustdoc 2022-04-03 13:41:12 +02:00
Dylan DPC
d7a24003d8
Rollup merge of #95354 - dtolnay:rustc_const_stable, r=lcnr
Handle rustc_const_stable attribute in library feature collector

The library feature collector in [compiler/rustc_passes/src/lib_features.rs](551b4fa395/compiler/rustc_passes/src/lib_features.rs) has only been looking at `#[stable(…)]`, `#[unstable(…)]`, and `#[rustc_const_unstable(…)]` attributes, while ignoring `#[rustc_const_stable(…)]`. The consequences of this were:

- When any const feature got stabilized (changing one or more `rustc_const_unstable` to `rustc_const_stable`), users who had previously enabled that unstable feature using `#![feature(…)]` would get told "unknown feature", rather than rustc's nicer "the feature … has been stable since … and no longer requires an attribute to enable".

    This can be seen in the way that https://github.com/rust-lang/rust/pull/93957#issuecomment-1079794660 failed after rebase:

    ```console
    error[E0635]: unknown feature `const_ptr_offset`
      --> $DIR/offset_from_ub.rs:1:35
       |
    LL | #![feature(const_ptr_offset_from, const_ptr_offset)]
       |                                   ^^^^^^^^^^^^^^^^
    ```

- We weren't enforcing that a particular feature is either stable everywhere or unstable everywhere, and that a feature that has been stabilized has the same stabilization version everywhere, both of which we enforce for the other stability attributes.

This PR updates the library feature collector to handle `rustc_const_stable`, and fixes places in the standard library and test suite where `rustc_const_stable` was being used in a way that does not meet the rules for a stability attribute.
2022-04-02 03:34:21 +02:00
bors
297a8018b5 Auto merge of #95552 - matthiaskrgr:rollup-bxminn9, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #95032 (Clean up, categorize and sort unstable features in std.)
 - #95260 (Better suggestions for `Fn`-family trait selection errors)
 - #95293 (suggest wrapping single-expr blocks in square brackets)
 - #95344 (Make `impl Debug for rustdoc::clean::Item` easier to read)
 - #95388 (interpret: make isize::MAX the limit for dynamic value sizes)
 - #95530 (rustdoc: do not show primitives and keywords as private)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-04-01 17:19:15 +00:00
Matthias Krüger
e21b27ff7a
Rollup merge of #95475 - Jules-Bertholet:rustdoc-hide-assoc-consts-from-trait-impls, r=jsha
rustdoc: Only show associated consts from inherent impls in sidebar

Resolves #95459
2022-04-01 12:07:01 +02:00
David Tolnay
4246916619
Adjust feature names that disagree on const stabilization version 2022-03-31 12:34:48 -07:00
Michael Howell
2983698b20 rustdoc: do not show primitives and keywords as private 2022-03-31 09:16:33 -07:00
Vadim Petrochenkov
f5ee822098 rustdoc: Fix resolution of crate-relative paths in doc links 2022-03-31 10:58:36 +03:00
Jules Bertholet
c8ab63b30f Only show associated consts from inherent impls in sidebar 2022-03-30 13:49:50 -04:00
lcnr
ee62514b16 fix rustdoc wrt builtin impls switch 2022-03-30 11:23:58 +02:00
lcnr
0d0d9cd718 update rustdoc 2022-03-30 11:23:58 +02:00
lcnr
983c12f7f6 update ui tests 2022-03-30 11:23:58 +02:00
bors
11909e3588 Auto merge of #95096 - GuillaumeGomez:rm-header-fn-field, r=camelid
Remove header field from clean::Function

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

This is another take on https://github.com/rust-lang/rust/issues/89673 (compared to https://github.com/rust-lang/rust/pull/91217) but very different on the approach: I moved the header call in one place but still require to have the `clean::Item` so I can use the `DefId` to get what is missing.

cc `@jyn514` (you reviewed the original so maybe you want to take a look?)
r? `@camelid`
2022-03-29 12:49:03 +00:00
Guillaume Gomez
fd48ea02af Add test to ensure foreign functions from dependencies are correctly handled 2022-03-29 11:46:57 +02:00
bors
2d37f38f87 Auto merge of #95024 - koehlma:rustdoc-private-items, r=GuillaumeGomez,camelid,jsha
rustdoc: add 🔒 to items with restricted visibility

This change marks items with restricted visibility with 🔒 when building with `--document-private-items`:

<img width="278" alt="Screen Shot 2022-03-20 at 23 50 24" src="https://user-images.githubusercontent.com/509209/159189513-9e4b09bb-6785-41a5-bfe2-df02f83f8641.png">

There also appears a “Restricted Visibility” tooltip when hovering over the emoji.

---

The original PR for reference:

This change makes private items slightly transparent (similar to `unstable` items in rustc):

<img width="272" alt="Screen Shot 2022-03-16 at 22 17 43" src="https://user-images.githubusercontent.com/509209/158692627-a1f6f5ec-e043-4aa2-9352-8d2b15c31c08.png">

I found myself using `--document-private-items` a lot recently because I find the documentation of private internals quite helpful when working on a larger project. However, not being able to distinguish private from public items (see #87785) when looking at the documentation makes this somewhat cumbersome.

This PR addresses the third suggestion of issue #87785 by marking private items typographically. It seems to me that the other suggestions are more involved but this is at least a first step.

A private item is also made slightly transparent in the path displayed in the header of a page:

<img width="467" alt="Screen Shot 2022-03-16 at 22 19 51" src="https://user-images.githubusercontent.com/509209/158692885-0bbd3417-3c0b-486f-b8ab-99c05c6fa7ca.png">

I am looking forward to feedback and suggestions.
2022-03-28 13:49:22 +00:00
Maximilian Köhl
1c523ba772 add tests for 🔒 2022-03-21 11:40:25 +01:00
Guillaume Gomez
7c53ae09a8 Add test to ensure auto-traits are respecting constraints 2022-03-18 11:27:18 +01:00
Matthias Krüger
82215ce646
Rollup merge of #94740 - GuillaumeGomez:unify-impl-blocks, r=notriddle
Unify impl blocks by wrapping them into a div

The blanket and "auto traits" sections are wrapped into a `div` with an ID. This PR fixes this incoherence by wrapping each impl section (the "deref impl" and the "inherent impl" sections were missing it). It'll also make some tests simpler to write.

r? `````@notriddle`````
2022-03-10 19:00:08 +01:00
Guillaume Gomez
fbd9c284d7 Update GUI tests for impl blocks path changes 2022-03-08 23:12:11 +01:00
Guillaume Gomez
a5216cf67d Unify inherent impl blocks by wrapping them into a div 2022-03-08 23:12:11 +01:00
Michael Goulet
890a44f66b Fix rustdoc for GATs with with anonymous bound regions 2022-03-06 15:58:35 -08:00
Matthias Krüger
faf1a7ffc8
Rollup merge of #93412 - fee1-dead:improve-rustdoc-const-bounds, r=GuillaumeGomez
Improve rustdoc const bounds

 - Rustdoc no longer displays `~const` in trait bounds, because it currently means nothing for stable users, and because we still haven't decided on the final syntax yet.
 - Rustdoc will hide trait bounds where the trait is `Drop` AND it is `~const`, i.e. `~const Drop` bounds because it has no effect on stable users as well.
 - Because of additional logic that hides the whole `where` statement where it consists of `~const Drop` bounds (so it doesn't display `struct Foo<T>() where ;` like that), bounds that have no trait e.g. `where [T; N+1]: ;` are also hidden.

Cherry-picked from #92433.
2022-03-06 15:41:26 +01:00
bors
1661e4c7e0 Auto merge of #93805 - petrochenkov:doclinkself, r=camelid,GuillaumeGomez
rustdoc: Stop textually replacing `Self` in doc links before resolving them

Resolve it directly to a type / def-id instead.

Also never pass `Self` to `Resolver`, it is useless because it's guaranteed that no resolution will be found.

This is a pre-requisite for https://github.com/rust-lang/rust/issues/83761.
2022-03-06 02:14:49 +00:00
bors
6d7684101a Auto merge of #94009 - compiler-errors:gat-rustdoc, r=GuillaumeGomez
Support GATs in Rustdoc

Implements:
1. Rendering GATs in trait definitions and impl blocks
2. Rendering GATs in types (e.g. in the return type of a function)

Fixes #92341

This is my first rustdoc PR, so I have absolutely no idea how to produce tests for this. Advice from the rustdoc team would be wonderful!

I tested locally and things looked correct:
![image](https://user-images.githubusercontent.com/3674314/153988325-9732cbf3-0645-4e1a-9e64-ddfd93877b55.png)
2022-03-04 00:27:23 +00:00
Michael Goulet
0e57a16c88 add tests 2022-03-03 13:01:35 -08:00
Matthias Krüger
835eaaa77e
Rollup merge of #94550 - GuillaumeGomez:HKF-macros, r=notriddle
rustdoc: Add test for higher kinded functions generated by macros

Fixes #75564.

The problem has been solved apparently so adding a test to prevent a regression.

r? ```@notriddle```
2022-03-03 20:01:46 +01:00
Guillaume Gomez
e3f04de3d4 Add test for higher kinded functions generated by macros 2022-03-03 11:32:07 +01:00
Matthias Krüger
850511d483
Rollup merge of #94101 - notriddle:notriddle/strip-test-cases, r=GuillaumeGomez
rustdoc: add test cases for hidden enum variants
2022-03-03 11:02:50 +01:00
Matthias Krüger
04ecf52a48
Rollup merge of #94417 - GuillaumeGomez:fix-duplicated-impl-links, r=notriddle
Fix duplicated impl links

Fixes #78701.

The problem is that the blanket impl has the same ID as the other impl, except that we don't derive IDs when we generate the sidebar. We now do.

r? ``@notriddle``
2022-02-27 21:46:37 +01:00
Guillaume Gomez
9b8a6b97e5 Add test to ensure that links to impls are correctly generated 2022-02-27 12:07:54 +01:00
Guillaume Gomez
1d95acba34 Add test for infinite redirection 2022-02-22 16:18:18 +01:00
Deadbeef
79f2180928
Add ui test 2022-02-22 10:26:18 +11:00
Deadbeef
9c0141a490
Bless rustdoc test 2022-02-22 09:25:30 +11:00
Matthias Krüger
9e9cc66e42
Rollup merge of #94091 - GuillaumeGomez:rustdoc-const-computed-value, r=oli-obk
Fix rustdoc const computed value

Fixes #85088.

It looks like this now (instead of hexadecimal):

![Screenshot from 2022-02-17 17-55-39](https://user-images.githubusercontent.com/3050060/154532115-0f9861a0-406f-4c9c-957f-32bedd8aca7d.png)

r? ````@oli-obk````
2022-02-20 00:37:27 +01:00
Guillaume Gomez
296adbac0a Add rustdoc test for const computed value 2022-02-19 14:00:36 +01:00
Vadim Petrochenkov
0da7adc828 rustdoc: Collect traits in scope for lang items 2022-02-18 16:11:23 +08:00
Michael Howell
547509e15e rustdoc: add test cases for hidden enum variants 2022-02-17 14:33:11 -07:00
Guillaume Gomez
0d928b6ed0 Update rustdoc tests to adapt to changes to the sidebar 2022-02-16 20:43:31 +01:00
Vadim Petrochenkov
482b753d66 rustdoc: Consider enum variants when resolving assoc items in doc links 2022-02-13 22:59:16 +08:00
Matthias Krüger
4256165411
Rollup merge of #93830 - camelid:cleanup-section-code, r=GuillaumeGomez
Refactor sidebar printing code

This is the refactoring parts of #92660, plus the trait aliases capitalization
consistency fix. I think this will be necessary for #92658.

r? `@GuillaumeGomez`
2022-02-10 12:10:01 +01:00
Noah Lev
504f3f037d Title-case trait aliases section for consistency 2022-02-09 11:39:13 -08:00
Matthias Krüger
7d5e2ac5eb
Rollup merge of #93715 - GuillaumeGomez:horizontal-trim, r=notriddle
Fix horizontal trim for block doc comments

Fixes #93662.

r? `@notriddle`
2022-02-08 06:47:36 +01:00
Guillaume Gomez
a476ec8bd0 Update rustdoc test 2022-02-07 17:07:53 +01:00
bors
88fb06a1f3 Auto merge of #93539 - petrochenkov:doclink, r=camelid,michaelwoerister
rustdoc: Collect traits in scope for foreign inherent impls

Inherent impls can be inlined for variety of reasons (impls of reexported types, impls available through `Deref`, impls inlined for unclear reasons like in https://github.com/rust-lang/rust/pull/88679#issuecomment-1023929480).
If an impl is inlined, then doc links in its comments are resolved and we may need the set of traits that are in scope at that impl's definition point.
So in this PR we simply collect traits in scope for *all* inherent impls from other crates if their `Self` type is public, which is very similar for the strategy for trait impls previously used in https://github.com/rust-lang/rust/pull/88679.

Fixes https://github.com/rust-lang/rust/issues/93476
Fixes https://github.com/rust-lang/rust/pull/88679#issuecomment-1026520300
Fixes https://github.com/rust-lang/rust/pull/88679#issuecomment-1023929480
2022-02-05 18:27:06 +00:00