Commit graph

161242 commits

Author SHA1 Message Date
Matthias Krüger bc0a165240
Rollup merge of #92742 - GuillaumeGomez:missing-suffix-sidebar-items, r=notriddle
Add missing suffix for sidebar-items script path

Fixes https://github.com/rust-lang/docs.rs/issues/1590.

r? ```@syphar```
2022-01-12 07:12:15 +01:00
Matthias Krüger eecdfe526f
Rollup merge of #92732 - wesleywiser:note_musl_patch_info, r=Mark-Simulacrum
Add note about upstream commit musl-patch-configure.diff is derived from

The patch landed in upstream over the weekend so I'm adding a note so we can more easily track when our patch file can be removed.
2022-01-12 07:12:14 +01:00
Matthias Krüger 37f061a2f8
Rollup merge of #92720 - rosik:patch-1, r=m-ou-se
Fix doc formatting for time.rs

The doc states that instants are not steady, but the word "not" wasn't highlighted in bold.
2022-01-12 07:12:13 +01:00
Matthias Krüger 5d904c17f6
Rollup merge of #92709 - joshtriplett:file-options-docs, r=Mark-Simulacrum
Improve documentation for File::options to give a more likely example

`File::options().read(true).open(...)` is equivalent to just
`File::open`. Change the example to set the `append` flag instead, and
then change the filename to something more likely to be written in
append mode.
2022-01-12 07:12:12 +01:00
Matthias Krüger cfb9306ef9
Rollup merge of #92707 - JohnScience:patch-1, r=GuillaumeGomez
Extended the note on the use of `no_run` attribute
2022-01-12 07:12:11 +01:00
Matthias Krüger 4f31c5c130
Rollup merge of #92703 - joshtriplett:relnotes-file-options, r=pietroalbini
RELEASES.md: Add 1.58 release note for `File::options` stabilization
2022-01-12 07:12:10 +01:00
Matthias Krüger b24b0fdcd0
Rollup merge of #92699 - camelid:private-fields, r=jsha
rustdoc: Display "private fields" instead of "fields omitted"

Also:

  * Always use `/* */` block comments
  * Use the same message everywhere, rather than sometimes prefixing
    with "some"

When I first read rustdoc docs, I was confused why the fields were being
omitted. It was only later that I realized it was because they were
private. It's also always bothered me that rustdoc sometimes uses `//`
and sometimes uses `/*` comments for these messages, so this change
makes them all use `/*`.

Technically, I think fields can be omitted if they are public but
`doc(hidden)` too, but `doc(hidden)` is analogous to privacy. It's
really just used to emulate "doc privacy" when -- because of technical
limitations -- an item has to be public. So I think it's fine to include
this under the category of "private fields".

r? ```@jsha```
2022-01-12 07:12:09 +01:00
Matthias Krüger 9ea9e1851d
Rollup merge of #92506 - nico-abram:uwu, r=Mark-Simulacrum
Document Box<T> FFI guarantee in 1.41.0 release notes

Fixes #68676
2022-01-12 07:12:08 +01:00
Matthias Krüger 6726f1e013
Rollup merge of #92432 - fee1-dead:constck-impl-constness, r=oli-obk
Error when selected impl is not const in constck

Catches bad things when checking a `default_method_body_is_const` body, such as:

```rust
self.map(/* .. */).is_sorted();
```

When `Map` does not yet have a `const` `impl` for `Iterator`.

r? ```@oli-obk```
2022-01-12 07:12:06 +01:00
Matthias Krüger 677f8f0f4f
Rollup merge of #92328 - camelid:sentence, r=scottmcm
Tweak sentence in `transmute` docs
2022-01-12 07:12:05 +01:00
Jason Newcomb d32277d78e Don't lint deref_addrof when the two operations occur in different expansions 2022-01-12 00:25:42 -05:00
Michael Goulet 40f33a7a4c Deduplicate box deref and regular deref suggestions 2022-01-11 21:13:45 -08:00
Eric Huss 66f1e322c6 Update cargo 2022-01-11 20:18:29 -08:00
Noah Lev c84f2b27d3 Remove some unnecessary uses of FieldDef::ident 2022-01-11 17:03:45 -08:00
Andy Russell 4193f2da2d
rustdoc: do not emit tuple variant fields if none are documented 2022-01-11 16:44:03 -05:00
Mahdi Dibaiee 2728af7bc0
rustc_pass_by_value: handle inferred generic types (with _) 2022-01-11 21:28:04 +00:00
bors 72e74d7b9c Auto merge of #92533 - Aaron1011:variant-symbol, r=petrochenkov
Store a `Symbol` instead of an `Ident` in `VariantDef`/`FieldDef`

The field is also renamed from `ident` to `name`. In most cases,
we don't actually need the `Span`. A new `ident` method is added
to `VariantDef` and `FieldDef`, which constructs the full `Ident`
using `tcx.def_ident_span()`. This method is used in the cases
where we actually need an `Ident`.

This makes incremental compilation properly track changes
to the `Span`, without all of the invalidations caused by storing
a `Span` directly via an `Ident`.
2022-01-11 21:02:01 +00:00
Mahdi Dibaiee 959bf2bc2e
rustc_pass_by_value: handle generic and const type parameters 2022-01-11 19:59:06 +00:00
Brennan Vincent 65d47347ad Address review comments 2022-01-11 12:08:46 -07:00
Konrad Borowski 7e6d97bc39 Inline std::os::unix::ffi::OsStringExt methods 2022-01-11 19:33:46 +01:00
bors 1409c015b4 Auto merge of #90948 - oli-obk:🧹, r=nikomatsakis
Actually instantiate the opaque type when checking bounds

Before this change, `instantiate_opaque_types` was a no-op, because it only works relative to the defined opaque type inference anchor. If it is a no-op, the for loop will not actually have anything to iterate over, and thus nothing is checked at all.
2022-01-11 17:31:07 +00:00
bors 88f5be2041 Auto merge of #8262 - 1nF0rmed:chore-update-borrowed-box-doc, r=camsteffen
Improve documentation for `borrowed-box` lint

fixes #8161

Updates documentation to elaborate more on how removing Box from a function parameter can generalize the function.

changelog: none
2022-01-11 17:07:50 +00:00
Pradyumna Rahul 7e989ec07a Improve documentation for borrowed-box lint 2022-01-11 22:02:15 +05:30
Miguel Ojeda 8680a44c0f Partially stabilize maybe_uninit_extra
This covers:

    impl<T> MaybeUninit<T> {
        pub unsafe fn assume_init_read(&self) -> T { ... }
        pub unsafe fn assume_init_drop(&mut self) { ... }
    }

It does not cover the const-ness of `write` under
`const_maybe_uninit_write` nor the const-ness of
`assume_init_read` (this commit adds
`const_maybe_uninit_assume_init_read` for that).

FCP: https://github.com/rust-lang/rust/issues/63567#issuecomment-958590287.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-01-11 17:01:13 +01:00
Deadbeef bf5130b502
Add test 2022-01-11 23:52:24 +08:00
Cameron Steffen 02ec39b2ff Stop using in_band_lifetimes 2022-01-11 09:52:23 -06:00
bors fd9cebe6eb Auto merge of #8210 - guerinoni:master, r=Manishearth
Add borrow_as_ptr lint

Closes: #6995

- \[x] Followed [lint naming conventions][lint_naming]
- \[x] Added passing UI tests (including committed `.stderr` file)
- \[x] `cargo test` passes locally
- \[x] Executed `cargo dev update_lints`
- \[x] Added lint documentation
- \[x] Run `cargo dev fmt`

---

changelog: new lint: [`borrow_as_ptr`]
2022-01-11 15:45:50 +00:00
Arlo Siemsen b03fc76dcc Use the new language identifier for Rust in the PDB debug format
Rust currently identifies as MASM (Microsoft Assembler) in the PDB
debug info format on Windows because no identifier was available.

This change pulls in a cherry-pick to Rust's LLVM that includes the
change to use the new identifier for Rust.

https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/cv-cfl-lang
2022-01-11 07:41:27 -08:00
Aaron Hill dda2aef64f Store a Symbol instead of an Ident in VariantDef/FieldDef
The field is also renamed from `ident` to `name. In most cases,
we don't actually need the `Span`. A new `ident` method is added
to `VariantDef` and `FieldDef`, which constructs the full `Ident`
using `tcx.def_ident_span()`. This method is used in the cases
where we actually need an `Ident`.

This makes incremental compilation properly track changes
to the `Span`, without all of the invalidations caused by storing
a `Span` directly via an `Ident`.
2022-01-11 10:16:22 -05:00
Aaron Hill 450ef8613c
Store a Symbol instead of an Ident in VariantDef/FieldDef
The field is also renamed from `ident` to `name. In most cases,
we don't actually need the `Span`. A new `ident` method is added
to `VariantDef` and `FieldDef`, which constructs the full `Ident`
using `tcx.def_ident_span()`. This method is used in the cases
where we actually need an `Ident`.

This makes incremental compilation properly track changes
to the `Span`, without all of the invalidations caused by storing
a `Span` directly via an `Ident`.
2022-01-11 10:16:22 -05:00
bors 2e2c86eba2 Auto merge of #92070 - rukai:replace_vec_into_iter_with_array_into_iter, r=Mark-Simulacrum
Replace usages of vec![].into_iter with [].into_iter

`[].into_iter` is idiomatic over `vec![].into_iter` because its simpler and faster (unless the vec is optimized away in which case it would be the same)

So we should change all the implementation, documentation and tests to use it.

I skipped:
* `src/tools` - Those are copied in from upstream
* `src/test/ui` - Hard to tell if `vec![].into_iter` was used intentionally or not here and not much benefit to changing it.
*  any case where `vec![].into_iter` was used because we specifically needed a `Vec::IntoIter<T>`
*  any case where it looked like we were intentionally using `vec![].into_iter` to test it.
2022-01-11 14:23:24 +00:00
Miguel Ojeda 3d4fdedd7e README: mention clippy-driver on usage list
Removes the "compiled from source" bit, which is confusing.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-01-11 14:48:25 +01:00
Miguel Ojeda fd97d792f9 README: clippy-driver is not a replacement for rustc
Currently, `clippy-driver` may run codegen, but this is an
implementation detail.

See https://github.com/rust-lang/rust-clippy/issues/8035.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-01-11 14:48:25 +01:00
Guillaume Gomez 24c6e963d0 Add GUI test for rust logo style in the sidebars 2022-01-11 13:57:17 +01:00
Guillaume Gomez 9234c0fd52 Fix style for rust logo 2022-01-11 13:42:20 +01:00
Mahdi Dibaiee a6762e962e
rustc_pass_by_value: allow types with no parameters on self
includes minor refactorings
2022-01-11 09:28:13 +00:00
Federico Guerinoni 3298de7f66 Add borrow_as_ptr lint
Closes: #6995

Signed-off-by: Federico Guerinoni <guerinoni.federico@gmail.com>
Co-authored-by: Paolo Barbolini <paolo@paolo565.org>
2022-01-11 09:53:29 +01:00
bors fccf07bae5 Auto merge of #8260 - taiki-e:mutex_atomic, r=llogiq
Downgrade mutex_atomic to nursery

See #1516 and #4295.

There are suggestions about removing this lint from the default warned lints in both issues.
Also, [`mutex_integer`](https://rust-lang.github.io/rust-clippy/master/index.html#mutex_integer) lint that has the same problems as this lint is in `nursery` group.

changelog: Moved [`mutex_atomic`] to `nursery`
2022-01-11 08:09:11 +00:00
bors e4b1d58414 Auto merge of #92012 - llogiq:repr-c-def-id, r=michaelwoerister
Make `DefId` `repr(C)`, optimize big-endian field order

r? `@michaelwoerister`
2022-01-11 08:09:00 +00:00
Laurențiu Nicola 22d4e97d6d ⬆️ rust-analyzer 2022-01-11 07:20:40 +02:00
Yacin Tmimi 11bea2681c Update AsmArgs field visibility for rustfmt
To more easily allow rustfmt to format the asm! macro as specified in
rust-dev-tools/fmt-rfcs#152 certain fields are made public.
2022-01-10 22:38:15 -05:00
Noah Lev 28d2353f3b Update some comments post the side channel removal 2022-01-10 19:23:26 -08:00
Noah Lev 895fa9cd5c Extract functions for two closures
These closures were quite complex and part of a quite complex function.
The fact that they are closures makes mistakes likely when refactoring.
For example, earlier, I meant to use `resolved`, an argument of the
closure, but I instead typed `res`, which captured a local variable and
caused a subtle bug that led to a confusing test failure.

Extracting them as functions makes the code easier to understand and
refactor.
2022-01-10 19:23:26 -08:00
Noah Lev a5f09f74d6 Update comment and make code clearer
I'm still not sure why this hack works so seemingly well.
2022-01-10 19:23:26 -08:00
Noah Lev 591ec49df3 Remove unnecessary conditional for suggesting disambiguator
Now that `res` is used directly, it seems the conditional is
unnecessary.
2022-01-10 19:23:26 -08:00
Noah Lev 9acd813380 Use Res instead of Disambiguator for resolved in report_mismatch
This allows simplifying a lot of code. It also fixes a subtle bug,
exemplified by the test output changes.
2022-01-10 19:23:26 -08:00
Noah Lev 977a7ca2e4 Add test for disambiguator mismatch with crate
This currently calls `std` a "crate" in one part of the message and a
"module" in another part. The next commits fix this so it says "crate"
in both places.
2022-01-10 19:23:26 -08:00
Noah Lev ca20d64fb7 Enable ignored part of test
Inherent associated types *are* supported, just unstable.
2022-01-10 19:23:26 -08:00
Noah Lev e18b23b7f4 Move two intra-doc-link tests into the intra-doc folder 2022-01-10 19:23:26 -08:00
Noah Lev 49553bbc98 Remove hack that is no longer necessary
This hack was added in 6ab1f05697.
I don't know what change allowed removing the hack, but that commit
added a test (which I presume covered the hack's behavior), and all
tests are passing with this change. So, I think it should be good.
2022-01-10 19:23:25 -08:00