]> git.lizzy.rs Git - rust.git/log
rust.git
21 months agoRollup merge of #102286 - compiler-errors:recover-semi-in-block-item, r=davidtwco
Matthias Krüger [Mon, 26 Sep 2022 17:19:21 +0000 (19:19 +0200)]
Rollup merge of #102286 - compiler-errors:recover-semi-in-block-item, r=davidtwco

Recover some items that expect braces and don't take semicolons

Fixes #102262

21 months agoRollup merge of #102273 - woppopo:relax_const_bound, r=fee1-dead
Matthias Krüger [Mon, 26 Sep 2022 17:19:21 +0000 (19:19 +0200)]
Rollup merge of #102273 - woppopo:relax_const_bound, r=fee1-dead

Allow `~const` bounds on non-const functions

Makes the behavior of bound of trait-associated functions and non-associated functions consistent.

21 months agoRollup merge of #102181 - inquisitivecrystal:issue-100878-test, r=Mark-Simulacrum
Matthias Krüger [Mon, 26 Sep 2022 17:19:20 +0000 (19:19 +0200)]
Rollup merge of #102181 - inquisitivecrystal:issue-100878-test, r=Mark-Simulacrum

Add regression test

This adds a regression test for issue #100878.

Closes #100878.

21 months agoRollup merge of #101996 - b-naber:binder-print, r=lcnr
Matthias Krüger [Mon, 26 Sep 2022 17:19:20 +0000 (19:19 +0200)]
Rollup merge of #101996 - b-naber:binder-print, r=lcnr

Don't duplicate region names for late-bound regions in print of Binder

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

21 months agoRollup merge of #101875 - fmease:allow-more-negative-copy-impls, r=lcnr
Matthias Krüger [Mon, 26 Sep 2022 17:19:19 +0000 (19:19 +0200)]
Rollup merge of #101875 - fmease:allow-more-negative-copy-impls, r=lcnr

Allow more `!Copy` impls

You can already implement `!Copy` for a lot of types (with `#![feature(negative_impls)]`). However, before this PR you could not implement `!Copy` for ADTs whose fields don't implement `Copy` which didn't make any sense. Further, you couldn't implement `!Copy` for types impl'ing `Drop` (equally nonsensical).

``@rustbot`` label T-types F-negative_impls
Fixes #101836.

r? types

21 months agoAuto merge of #102051 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum
bors [Mon, 26 Sep 2022 14:22:43 +0000 (14:22 +0000)]
Auto merge of #102051 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum

Update bootstrap compiler to 1.65.0

This PR updates the bootstrap compiler to Rust 1.65.0, removing the various `cfg(bootstrap)`s.

r? `@Mark-Simulacrum`

21 months agoaddress review
b-naber [Wed, 21 Sep 2022 15:57:30 +0000 (17:57 +0200)]
address review

21 months agoAuto merge of #102184 - chenyukang:fix-102087-add-binding-sugg, r=nagisa
bors [Mon, 26 Sep 2022 11:41:58 +0000 (11:41 +0000)]
Auto merge of #102184 - chenyukang:fix-102087-add-binding-sugg, r=nagisa

Suggest Default::default() when binding isn't initialized

Fixes #102087

21 months agobless tests
b-naber [Sun, 18 Sep 2022 20:02:56 +0000 (22:02 +0200)]
bless tests

21 months agodon't duplicate late-bound region names in print of Binder
b-naber [Thu, 15 Sep 2022 16:46:40 +0000 (18:46 +0200)]
don't duplicate late-bound region names in print of Binder

21 months agoactually fix line number
Pietro Albini [Fri, 23 Sep 2022 08:40:36 +0000 (10:40 +0200)]
actually fix line number

21 months agofix line number in expected test output
Pietro Albini [Wed, 21 Sep 2022 13:15:17 +0000 (15:15 +0200)]
fix line number in expected test output

21 months agoapplease tidy
Pietro Albini [Wed, 21 Sep 2022 07:24:00 +0000 (09:24 +0200)]
applease tidy

21 months agofix check_cfg
Pietro Albini [Tue, 20 Sep 2022 15:02:26 +0000 (17:02 +0200)]
fix check_cfg

21 months agoremove cfg(bootstrap)
Pietro Albini [Tue, 20 Sep 2022 13:41:42 +0000 (15:41 +0200)]
remove cfg(bootstrap)

21 months agobump stage0
Pietro Albini [Tue, 20 Sep 2022 10:44:15 +0000 (12:44 +0200)]
bump stage0

21 months agoreplace stabilization placeholders
Pietro Albini [Mon, 19 Sep 2022 12:54:16 +0000 (14:54 +0200)]
replace stabilization placeholders

21 months agoAuto merge of #102224 - fee1-dead-contrib:const_trait_impl_specialization, r=oli-obk
bors [Mon, 26 Sep 2022 08:08:35 +0000 (08:08 +0000)]
Auto merge of #102224 - fee1-dead-contrib:const_trait_impl_specialization, r=oli-obk

Allow specializing on const trait bounds

21 months agoAuto merge of #102297 - fee1-dead-contrib:rollup-2np0cre, r=fee1-dead
bors [Mon, 26 Sep 2022 05:27:43 +0000 (05:27 +0000)]
Auto merge of #102297 - fee1-dead-contrib:rollup-2np0cre, r=fee1-dead

Rollup of 5 pull requests

Successful merges:

 - #102143 (Recover from struct nested in struct)
 - #102178 (bootstrap: the backtrace feature is stable, no need to allow it any more)
 - #102197 (Stabilize const `BTree{Map,Set}::new`)
 - #102267 (Don't set RUSTC in the bootstrap build script)
 - #102270 (Remove benches from `rustc_middle`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agoRollup merge of #102270 - Nilstrieb:delete-useless-benches, r=TaKO8Ki
fee1-dead [Mon, 26 Sep 2022 05:09:43 +0000 (13:09 +0800)]
Rollup merge of #102270 - Nilstrieb:delete-useless-benches, r=TaKO8Ki

Remove benches from `rustc_middle`

These benches benchmark rust langauge features and not the compiler, so they seem to be in the wrong place here. They also all take <1ns, making them pretty useless. Looking at their git history, they just seem to have been carried around for many, many years. This commit ends their journey.

21 months agoRollup merge of #102267 - jyn514:smaller-build-script, r=Mark-Simulacrum
fee1-dead [Mon, 26 Sep 2022 05:09:43 +0000 (13:09 +0800)]
Rollup merge of #102267 - jyn514:smaller-build-script, r=Mark-Simulacrum

Don't set RUSTC in the bootstrap build script

We no longer use this for anything since https://github.com/rust-lang/rust/pull/98483/files#diff-7eddc76f1be9eca2599a9ae58c65ffe247fbdff9b02ef687439894cab9afe749L781. Remove it, so that we spuriously rebuild bootstrap fewer times on Windows (where PATH changes often).

Helps with https://github.com/rust-lang/rust/issues/92369. cc https://github.com/rust-lang/rust/pull/102266

r? ``@Mark-Simulacrum``

21 months agoRollup merge of #102197 - Nilstrieb:const-new-🌲, r=Mark-Simulacrum
fee1-dead [Mon, 26 Sep 2022 05:09:42 +0000 (13:09 +0800)]
Rollup merge of #102197 - Nilstrieb:const-new-🌲, r=Mark-Simulacrum

Stabilize const `BTree{Map,Set}::new`

The FCP was completed in #71835.

Since `len` and `is_empty` are not const stable yet, this also creates a new feature for them since they previously used the same `const_btree_new` feature.

21 months agoRollup merge of #102178 - RalfJung:bootstrap-backtrace, r=Mark-Simulacrum
fee1-dead [Mon, 26 Sep 2022 05:09:42 +0000 (13:09 +0800)]
Rollup merge of #102178 - RalfJung:bootstrap-backtrace, r=Mark-Simulacrum

bootstrap: the backtrace feature is stable, no need to allow it any more

21 months agoRollup merge of #102143 - Rageking8:fix-101540, r=TaKO8Ki
fee1-dead [Mon, 26 Sep 2022 05:09:41 +0000 (13:09 +0800)]
Rollup merge of #102143 - Rageking8:fix-101540, r=TaKO8Ki

Recover from struct nested in struct

Fixes #101540

r? `@TaKO8Ki`

Not sure If I have done it right.

21 months agoAllow `~const` bounds on non-const functions
woppopo [Mon, 26 Sep 2022 05:00:31 +0000 (05:00 +0000)]
Allow `~const` bounds on non-const functions

21 months agoAuto merge of #102292 - fee1-dead-contrib:rollup-61ptdkt, r=fee1-dead
bors [Mon, 26 Sep 2022 02:45:13 +0000 (02:45 +0000)]
Auto merge of #102292 - fee1-dead-contrib:rollup-61ptdkt, r=fee1-dead

Rollup of 4 pull requests

Successful merges:

 - #101851 (Clean up (sub)diagnostic derives)
 - #102244 (Only generate closure def id for async fns with body)
 - #102263 (Clarify Iterator::rposition code example)
 - #102280 (rustdoc: clean up `.out-of-band`/`.in-band` CSS)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agoRollup merge of #102280 - notriddle:notriddle/band, r=GuillaumeGomez
fee1-dead [Mon, 26 Sep 2022 01:27:38 +0000 (09:27 +0800)]
Rollup merge of #102280 - notriddle:notriddle/band, r=GuillaumeGomez

rustdoc: clean up `.out-of-band`/`.in-band` CSS

|        | method | impl
|--------|--------|------
| before | ![image](https://user-images.githubusercontent.com/1593513/192164603-dea9befb-0f5f-4bd5-a44d-1f8328e27955.png) | ![image](https://user-images.githubusercontent.com/1593513/192164642-06f958cb-8fd5-4b73-bdb7-d2778f358f80.png)
| after  | ![image](https://user-images.githubusercontent.com/1593513/192164612-f72ee8db-c87c-477c-99e8-283b1cf0c14b.png) | ![image](https://user-images.githubusercontent.com/1593513/192164653-8e628dc3-5bf3-4ce8-829b-06e27a90fe06.png)

* Remove the `float: right` fallback from the main header, which hasn't been needed since IE11 support was dropped.

* Remove `in-band` from low-level headers, which hasn't been needed since `.rightside` switched to `float: right` in https://github.com/rust-lang/rust/commit/593d6d1cb15c55c88319470dabb40126c7b7f1e2

* Remove unreachable `.in-band > code, .in-band > .code-header` CSS, since the `in-band` class was attached to the `code-header` itself, not nested directly below it.

* Use `rem` instead of `em` for code header margins.

* This results in a slight change in spacing around impls and item-info, but since it makes it more consistent with the way methods are presented, it's probably fine.

Preview: http://notriddle.com/notriddle-rustdoc-demos/band/std/fs/struct.File.html

21 months agoRollup merge of #102263 - GuillaumeGomez:iterator-rposition-example, r=thomcc
fee1-dead [Mon, 26 Sep 2022 01:27:37 +0000 (09:27 +0800)]
Rollup merge of #102263 - GuillaumeGomez:iterator-rposition-example, r=thomcc

Clarify Iterator::rposition code example

Fixes #101095.

r? `@thomcc`

21 months agoRollup merge of #102244 - compiler-errors:issue-102219, r=cjgillot
fee1-dead [Mon, 26 Sep 2022 01:27:37 +0000 (09:27 +0800)]
Rollup merge of #102244 - compiler-errors:issue-102219, r=cjgillot

Only generate closure def id for async fns with body

Fixes #102219

21 months agoRollup merge of #101851 - Xiretza:diagnostic-derive-cleanups, r=davidtwco
fee1-dead [Mon, 26 Sep 2022 01:27:36 +0000 (09:27 +0800)]
Rollup merge of #101851 - Xiretza:diagnostic-derive-cleanups, r=davidtwco

Clean up (sub)diagnostic derives

The biggest chunk of this is unifying the parsing of subdiagnostic attributes (`#[error]`, `#[suggestion(...)]`, `#[label(...)]`, etc) between `Subdiagnostic` and `Diagnostic` type attributes as well as `Diagnostic` field attributes.

It also improves a number of proc macro diagnostics.

Waiting for #101558.

21 months agoAuto merge of #101785 - jyn514:query-struct-fn-ptrs, r=cjgillot
bors [Mon, 26 Sep 2022 00:17:59 +0000 (00:17 +0000)]
Auto merge of #101785 - jyn514:query-struct-fn-ptrs, r=cjgillot

Use function pointers instead of macro-unrolled loops in rustc_query_impl

By making these standalone functions, we
a) allow making them extensible in the future with a new `QueryStruct`
b) greatly decrease the amount of code in each individual function, avoiding exponential blowup in llvm

Helps with https://github.com/rust-lang/rust/issues/96524. Based on https://github.com/rust-lang/rust/pull/101173; only the last commit is relevant.

r? `@cjgillot`

21 months agofix #102087, Suggest Default::default() when binding isn't initialized
yukang [Fri, 23 Sep 2022 07:28:48 +0000 (15:28 +0800)]
fix #102087, Suggest Default::default() when binding isn't initialized

21 months agoOnly lower async fn body if it actually has a body
Michael Goulet [Sat, 24 Sep 2022 19:22:01 +0000 (19:22 +0000)]
Only lower async fn body if it actually has a body

21 months agoOnly generate closure def id for async fns with body
Michael Goulet [Sat, 24 Sep 2022 18:53:53 +0000 (18:53 +0000)]
Only generate closure def id for async fns with body

21 months agoRecover some items that expect braces and don't take semicolons
Michael Goulet [Sun, 25 Sep 2022 22:20:01 +0000 (22:20 +0000)]
Recover some items that expect braces and don't take semicolons

21 months agoRound offset to whole integer
Michael Howell [Sun, 25 Sep 2022 21:58:49 +0000 (14:58 -0700)]
Round offset to whole integer

21 months agoAuto merge of #101710 - jyn514:move-dep-kind-node, r=cjgillot
bors [Sun, 25 Sep 2022 21:37:10 +0000 (21:37 +0000)]
Auto merge of #101710 - jyn514:move-dep-kind-node, r=cjgillot

Move DepKindStruct from rustc_middle to rustc_query_system

Helps with https://github.com/rust-lang/rust/issues/96524. cc https://rust-lang.zulipchat.com/#narrow/stream/241847-t-compiler.2Fwg-incr-comp/topic/Moving.20.60DepKindStruct.60.20to.20rustc_query_system.20.2396524

r? `@cjgillot`

21 months agorustdoc: update test cases now that code-header is used without in-band
Michael Howell [Sun, 25 Sep 2022 20:52:26 +0000 (13:52 -0700)]
rustdoc: update test cases now that code-header is used without in-band

21 months agorustdoc: clean up `.out-of-band`/`.in-band` CSS
Michael Howell [Sun, 25 Sep 2022 20:09:22 +0000 (13:09 -0700)]
rustdoc: clean up `.out-of-band`/`.in-band` CSS

* Remove the `float: right` fallback from the main header, which hasn't
  been needed since IE11 support was dropped.

* Remove `in-band` from low-level headers, which hasn't been needed since
  `.rightside` switched to `float: right` in
  593d6d1cb15c55c88319470dabb40126c7b7f1e2

* Remove unreachable `.in-band > code, .in-band > .code-header` CSS, since
  the `in-band` class was attached to the `code-header` itself, not nested
  directly below it.

* Use `rem` instead of `em` for code header margins.

* This results in a slight change in spacing around impls and item-info,
  but since it makes it more consistent with the way methods are presented,
  it's probably fine.

21 months agoAuto merge of #95474 - oli-obk:tait_ub, r=jackh726
bors [Sun, 25 Sep 2022 19:15:26 +0000 (19:15 +0000)]
Auto merge of #95474 - oli-obk:tait_ub, r=jackh726

Neither require nor imply lifetime bounds on opaque type for well formedness

The actual hidden type can live arbitrarily longer than any individual lifetime and arbitrarily shorter than all but one of the lifetimes.

fixes #86218
fixes #84305

This is a **breaking change** but it is a necessary soundness fix

21 months agoMove the `codegen_unit` debug assert from `rustc_query_system` to `query_impl`
Joshua Nelson [Sun, 18 Sep 2022 21:35:48 +0000 (16:35 -0500)]
Move the `codegen_unit` debug assert from `rustc_query_system` to `query_impl`

This allows removing a function from the `DepKind` trait.

21 months agoMove some more code from rustc_middle to rustc_query_system
Joshua Nelson [Mon, 12 Sep 2022 04:31:50 +0000 (23:31 -0500)]
Move some more code from rustc_middle to rustc_query_system

21 months agoMove functions on `DepKindStruct` from rustc_middle to rustc_query_system
Joshua Nelson [Mon, 12 Sep 2022 04:18:08 +0000 (23:18 -0500)]
Move functions on `DepKindStruct` from rustc_middle to rustc_query_system

21 months agoMove `DepKindStruct` from rustc_middle to rustc_query_system
Joshua Nelson [Mon, 12 Sep 2022 02:10:53 +0000 (21:10 -0500)]
Move `DepKindStruct` from rustc_middle to rustc_query_system

21 months agoAuto merge of #102266 - Mark-Simulacrum:fix-custom-rustc, r=jyn514
bors [Sun, 25 Sep 2022 16:52:49 +0000 (16:52 +0000)]
Auto merge of #102266 - Mark-Simulacrum:fix-custom-rustc, r=jyn514

Support overriding initial rustc and cargo paths

This restores functionality broken by #98483. Unfortunately, it doesn't add a test to verify this works, but in this case we notice pretty quickly as perf uses this functionality and so reports breakage immediately after merging.

r? `@jyn514`

cc https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/rustc.20and.20cargo.20option.20broken.20in.20config.2Etoml, https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/Rustc.20benchmark.20broken

21 months agoRemove benches from `rustc_middle`
Nilstrieb [Sun, 25 Sep 2022 16:35:43 +0000 (18:35 +0200)]
Remove benches from `rustc_middle`

These benches benchmark rust langauge features and not the compiler,
so they seem to be in the wrong place here. They also all take <1ns,
making them pretty useless. Looking at their git history, they just
seem to have been carried around for many, many years. This commit
ends their journey.

21 months agoUse function pointers instead of macro-unrolled loops in rustc_query_impl
Joshua Nelson [Tue, 13 Sep 2022 23:32:22 +0000 (18:32 -0500)]
Use function pointers instead of macro-unrolled loops in rustc_query_impl

By making these standalone functions, we
a) allow making them extensible in the future with a new `QueryStruct`
b) greatly decrease the amount of code in each individual function, avoiding exponential blowup in llvm

21 months agoDon't set RUSTC in the bootstrap build script
Joshua Nelson [Sun, 25 Sep 2022 14:42:01 +0000 (09:42 -0500)]
Don't set RUSTC in the bootstrap build script

We no longer use this for anything since https://github.com/rust-lang/rust/pull/98483/files#diff-7eddc76f1be9eca2599a9ae58c65ffe247fbdff9b02ef687439894cab9afe749L781.
Remove it, so that we spuriously rebuild bootstrap fewer times on Windows (where PATH changes often).

21 months agoAuto merge of #102265 - fee1-dead-contrib:rollup-a7fccbg, r=fee1-dead
bors [Sun, 25 Sep 2022 14:28:04 +0000 (14:28 +0000)]
Auto merge of #102265 - fee1-dead-contrib:rollup-a7fccbg, r=fee1-dead

Rollup of 8 pull requests

Successful merges:

 - #98111 (Clarify `[T]::select_nth_unstable*` return values)
 - #101431 (Look at move place's type when suggesting mutable reborrow)
 - #101800 (Constify slice.split_at_mut(_unchecked))
 - #101997 (Remove support for legacy PM)
 - #102194 (Note the type when unable to drop values in compile time)
 - #102200 (Constify Default impl's for Arrays and Tuples.)
 - #102245 (Constify cmp_min_max_by.)
 - #102259 (Type-annotate and simplify documentation of Option::unwrap_or_default)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agoSupport overriding initial rustc and cargo paths
Mark Rousskov [Sun, 25 Sep 2022 14:23:33 +0000 (10:23 -0400)]
Support overriding initial rustc and cargo paths

This restores functionality broken by #98483. Unfortunately, it doesn't
add a test to verify this works, but in this case we notice pretty
quickly as perf uses this functionality and so reports breakage
immediately after merging.

21 months agoRollup merge of #102259 - gimbles:patch-1, r=joshtriplett
fee1-dead [Sun, 25 Sep 2022 14:06:41 +0000 (22:06 +0800)]
Rollup merge of #102259 - gimbles:patch-1, r=joshtriplett

Type-annotate and simplify documentation of Option::unwrap_or_default

Part of #100054

21 months agoRollup merge of #102245 - ink-feather-org:const_cmp_by, r=fee1-dead
fee1-dead [Sun, 25 Sep 2022 14:06:40 +0000 (22:06 +0800)]
Rollup merge of #102245 - ink-feather-org:const_cmp_by, r=fee1-dead

Constify cmp_min_max_by.

Constifies `core::cmp::{min, max}_by[_key]` behind the `const_cmp` #92391 feature gate, using `const_closure`.

21 months agoRollup merge of #102200 - ink-feather-org:const_default_impls, r=fee1-dead
fee1-dead [Sun, 25 Sep 2022 14:06:40 +0000 (22:06 +0800)]
Rollup merge of #102200 - ink-feather-org:const_default_impls, r=fee1-dead

Constify Default impl's for Arrays and Tuples.

Allows to create arrays and tuples in const Context using the ~const Default implementation of the inner type.

21 months agoRollup merge of #102194 - fee1-dead-contrib:improve-const-drop, r=oli-obk
fee1-dead [Sun, 25 Sep 2022 14:06:39 +0000 (22:06 +0800)]
Rollup merge of #102194 - fee1-dead-contrib:improve-const-drop, r=oli-obk

Note the type when unable to drop values in compile time

21 months agoRollup merge of #101997 - cuviper:drop-legacy-pm, r=nikic
fee1-dead [Sun, 25 Sep 2022 14:06:38 +0000 (22:06 +0800)]
Rollup merge of #101997 - cuviper:drop-legacy-pm, r=nikic

Remove support for legacy PM

This removes support for optimizing with LLVM's legacy pass manager, as well as the unstable `-Znew-llvm-pass-manager` option. We have been defaulting to the new PM since LLVM 13 (except for s390x that waited for 14), and LLVM 15 removed support altogether. The only place we still use the legacy PM is for writing the output file, just like `llc` does.

cc #74705
r? ``@nikic``

21 months agoRollup merge of #101800 - chriss0612:feat/const_split_at_mut, r=fee1-dead
fee1-dead [Sun, 25 Sep 2022 14:06:38 +0000 (22:06 +0800)]
Rollup merge of #101800 - chriss0612:feat/const_split_at_mut, r=fee1-dead

Constify slice.split_at_mut(_unchecked)

Tracking Issue: [Tracking Issue for const_slice_split_at_mut](https://github.com/rust-lang/rust/issues/101804)

Feature gate: `#![feature(const_slice_split_at_mut)]`

Still requires const_mut_refs to be actually used, but this feature removes the need to manually re implement these functions in a user crate.

21 months agoRollup merge of #101431 - compiler-errors:move-place-ty-for-move-place-sugg, r=cjgillot
fee1-dead [Sun, 25 Sep 2022 14:06:37 +0000 (22:06 +0800)]
Rollup merge of #101431 - compiler-errors:move-place-ty-for-move-place-sugg, r=cjgillot

Look at move place's type when suggesting mutable reborrow

Not sure why we are looking at the use site's ty instead of the move site's ty in order to suggest reborrowing the move site, but it was suppressing a perfectly valid reborrow suggestion.

r? `@estebank` who i think touched this last in 520461f1fb2730f8edb17922f3bcc74fccdc52d3, though that was quite a while ago so feel free to reassign.

21 months agoRollup merge of #98111 - eggyal:issue-97982, r=GuillaumeGomez
fee1-dead [Sun, 25 Sep 2022 14:06:36 +0000 (22:06 +0800)]
Rollup merge of #98111 - eggyal:issue-97982, r=GuillaumeGomez

Clarify `[T]::select_nth_unstable*` return values

In cases where the nth element is not unique within the slice, it is not
correct to say that the values in the returned triplet include ones for
"all elements" less/greater than that at the given index: indeed one (or
more) such values would then also contain elements equal to that at
the given index.

The text proposed here clarifies exactly what is returned, but in so
doing it is also documenting an implementation detail that previously
wasn't detailed: namely that the returned slices are slices into the
reordered slice.  I don't think this can be contentious, because the
lifetimes of those returned slices are bound to that of the original
(now reordered) slice—so there really isn't any other reasonable
implementation that could have this behaviour; but nevertheless it's
probably best if `@rust-lang/libs-api` give it a nod?

Fixes #97982
r? `@m-ou-se`

`@rustbot` label +A-docs +C-bug +T-libs-api -T-libs

21 months agoClarify Iterator::rposition code example
Guillaume Gomez [Sun, 25 Sep 2022 12:09:41 +0000 (14:09 +0200)]
Clarify Iterator::rposition code example

21 months agoAuto merge of #100865 - compiler-errors:parent-substs-still, r=cjgillot
bors [Sun, 25 Sep 2022 12:00:37 +0000 (12:00 +0000)]
Auto merge of #100865 - compiler-errors:parent-substs-still, r=cjgillot

Don't drop parent substs when we have no generic parameters in `create_substs_for_ast_path`

This bug is being shadowed by an explicit check for `generics.params.is_empty()` in the only parent caller that could trigger it (`create_substs_for_associated_item`). I triggered it on another branch where I'm messing around with astconv stuff.

Also, the second commit simplifies `create_substs_for_associated_item`. Removing that explicit check I mentioned above^ and also the special case call to `Astconv::prohibit_generics` causes the UI test `src/test/ui/structs/struct-path-associated-type.stderr` to change, but I think that it's clearer now. The suggestion to remove the generics is actually useful.

21 months agoUpdate option.rs
Gimgim [Sun, 25 Sep 2022 10:18:08 +0000 (15:48 +0530)]
Update option.rs

21 months agoAuto merge of #102254 - matthiaskrgr:rollup-gitu6li, r=matthiaskrgr
bors [Sun, 25 Sep 2022 09:33:57 +0000 (09:33 +0000)]
Auto merge of #102254 - matthiaskrgr:rollup-gitu6li, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #102016 (implied_bounds: deal with inference vars)
 - #102161 (Resolve async fn signature even without body (e.g., in trait))
 - #102216 (rustdoc: Stabilize --diagnostic-width)
 - #102240 (rustdoc: remove unused CSS `#main-content > .line-numbers`)
 - #102242 (rustdoc: remove unused CSS `.summary`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agoRollup merge of #102242 - notriddle:notriddle/summary, r=GuillaumeGomez
Matthias Krüger [Sun, 25 Sep 2022 07:32:10 +0000 (09:32 +0200)]
Rollup merge of #102242 - notriddle:notriddle/summary, r=GuillaumeGomez

rustdoc: remove unused CSS `.summary`

It was added in 4d16de01d0beb84dc4a351022ea5cb587b4ab557 as part of a stability dashboard that was removed in 0a46933c4d81573e78ce16cd215ba155a3114fce.

21 months agoRollup merge of #102240 - notriddle:notriddle/main-line-numbers, r=GuillaumeGomez
Matthias Krüger [Sun, 25 Sep 2022 07:32:09 +0000 (09:32 +0200)]
Rollup merge of #102240 - notriddle:notriddle/main-line-numbers, r=GuillaumeGomez

rustdoc: remove unused CSS `#main-content > .line-numbers`

This selector was added in 10b937028660e079cf15735cfb5c4d58892fb10e. It became unreachable when 09150f81930e035254e58ee56f5905c2eb421617 made it so that `.line-numbers` are always nested below `.example-wrap`, even on source pages.

21 months agoRollup merge of #102216 - ehuss:rustdoc-diagnostic-width, r=notriddle
Matthias Krüger [Sun, 25 Sep 2022 07:32:09 +0000 (09:32 +0200)]
Rollup merge of #102216 - ehuss:rustdoc-diagnostic-width, r=notriddle

rustdoc: Stabilize --diagnostic-width

This stabilizes the `--diagnostic-width` flag for rustdoc. This flag was stabilized in rustc in #95635, but it isn't clear from the discussion there why it wasn't stabilized in rustdoc. I believe this flag works as expected, following the same behavior as rustc.

I'd like to stabilize this so that the same support can be stabilized in cargo, and it would help simplify things if both rustc and rustdoc supported it.

21 months agoRollup merge of #102161 - compiler-errors:issue-102138, r=tmandry
Matthias Krüger [Sun, 25 Sep 2022 07:32:08 +0000 (09:32 +0200)]
Rollup merge of #102161 - compiler-errors:issue-102138, r=tmandry

Resolve async fn signature even without body (e.g., in trait)

Fixes #102138

This "bail if no body" behavior was introduced in #69539 to fix #69401, but that ICE does not reproduce any more. The error message changes a bit, but that's all, and I don't think it's a particularly diagnostic bad regression.

21 months agoRollup merge of #102016 - lcnr:given-OutlivesEnvironment, r=jackh726
Matthias Krüger [Sun, 25 Sep 2022 07:32:07 +0000 (09:32 +0200)]
Rollup merge of #102016 - lcnr:given-OutlivesEnvironment, r=jackh726

implied_bounds: deal with inference vars

fixes #101951

while computing implied bounds for `<<T as ConstructionFirm>::Builder as BuilderFn<'_>>::Output` normalization replaces a projection with an inference var (adding a `Projection` obligation). Until we prove that obligation, this inference var remains unknown, which caused us to miss an implied bound necessary to prove that the unnormalized projection from the trait method signature is wf.

r? types

21 months agoAuto merge of #99609 - workingjubilee:lossy-unix-strerror, r=thomcc
bors [Sun, 25 Sep 2022 06:53:14 +0000 (06:53 +0000)]
Auto merge of #99609 - workingjubilee:lossy-unix-strerror, r=thomcc

Recover error strings on Unix from_lossy_utf8

Some language settings can result in unreliable UTF-8 being produced.
This can result in failing to emit the error string, panicking instead.
from_lossy_utf8 allows us to assume these strings usually will be fine.

This fixes rust-lang#99535.

21 months agoAuto merge of #98457 - japaric:gh98378, r=m-ou-se
bors [Sun, 25 Sep 2022 04:12:30 +0000 (04:12 +0000)]
Auto merge of #98457 - japaric:gh98378, r=m-ou-se

make Condvar, Mutex, RwLock const constructors work with the `unsupported` impl

applying this patch locally to the `rust-src` component fixes #98378

however, the solution seems wrong to me because PR #97791 didn't add any `rustc_const_stable` attribute to underlying implementations like `std::sys::unix::futex`, so I must be missing something about how const-stability is checked ... maybe the `restricted_std` feature (gate?) has an effect?

fixes #98378
fixes #98293 (probably)

21 months agoAuto merge of #102169 - scottmcm:constify-some-conditions, r=thomcc
bors [Sun, 25 Sep 2022 01:20:11 +0000 (01:20 +0000)]
Auto merge of #102169 - scottmcm:constify-some-conditions, r=thomcc

Make ZST checks in core/alloc more readable

There's a bunch of these checks because of special handing for ZSTs in various unsafe implementations of stuff.

This lets them be `T::IS_ZST` instead of `mem::size_of::<T>() == 0` every time, making them both more readable and more terse.

*Not* proposed for stabilization.  Would be `pub(crate)` except `alloc` wants to use it too.

(And while it doesn't matter now, if we ever get something like #85836 making it a const can help codegen be simpler.)

21 months agoAuto merge of #102040 - TaKO8Ki:separate-definitions-and-hir-owners, r=cjgillot
bors [Sat, 24 Sep 2022 22:42:07 +0000 (22:42 +0000)]
Auto merge of #102040 - TaKO8Ki:separate-definitions-and-hir-owners, r=cjgillot

Separate definitions and HIR owners in the type system

Fixes #83158

r? `@cjgillot`

21 months agoNote the type when unable to drop values in compile time
Deadbeef [Fri, 23 Sep 2022 14:22:36 +0000 (14:22 +0000)]
Note the type when unable to drop values in compile time

21 months agoadded tests
Deadbeef [Sat, 24 Sep 2022 20:15:19 +0000 (20:15 +0000)]
added tests

21 months agoConstify cmp_min_max_by
onestacked [Fri, 23 Sep 2022 16:47:47 +0000 (18:47 +0200)]
Constify cmp_min_max_by

21 months agoAuto merge of #98483 - dvtkrlbs:bootstrap-dist, r=jyn514
bors [Sat, 24 Sep 2022 20:00:51 +0000 (20:00 +0000)]
Auto merge of #98483 - dvtkrlbs:bootstrap-dist, r=jyn514

Distribute bootstrap in CI

This pre-compiles bootstrap from source and adds it to the existing `rust-dev` component. There are two main goals here:
1. Make it faster to build rust from source, both the first time and incrementally
2. Make it easier to add non-python entrypoints, since they can call out to bootstrap directly rather than having to figure out the right flags to pre-compile it. This second part is still in a bit of flux, see the tracking issue below for more information.

There are also several changes to make bootstrap able to run on a machine other than the one it was built (particularly around `config.src` and `config.out` detection). I (`@jyn514)` am slightly concerned these will regress unless tested - maybe we should add an automated test that runs bootstrap in a chroot or something? Unclear whether the effort is worth the test coverage.

Helps with https://github.com/rust-lang/rust/issues/94829.

21 months agoAdd test
Michael Goulet [Sat, 24 Sep 2022 19:04:25 +0000 (19:04 +0000)]
Add test

21 months agoOnly record extra lifetime params for async trait fn with no body
Michael Goulet [Fri, 23 Sep 2022 00:49:25 +0000 (00:49 +0000)]
Only record extra lifetime params for async trait fn with no body

21 months agoResolve async fn signature even without body (in trait)
Michael Goulet [Thu, 22 Sep 2022 22:53:32 +0000 (22:53 +0000)]
Resolve async fn signature even without body (in trait)

21 months agoAdd some more documentation
Scott McMurray [Sat, 24 Sep 2022 19:12:41 +0000 (12:12 -0700)]
Add some more documentation

21 months agoCopy `bootstrap.exe` on Windows, not `bootstrap`
Joshua Nelson [Sat, 24 Sep 2022 18:32:19 +0000 (13:32 -0500)]
Copy `bootstrap.exe` on Windows, not `bootstrap`

21 months agorustdoc: remove unused CSS `.summary`
Michael Howell [Sat, 24 Sep 2022 17:51:37 +0000 (10:51 -0700)]
rustdoc: remove unused CSS `.summary`

It was added in 4d16de01d0beb84dc4a351022ea5cb587b4ab557 as part of a
stability dashboard that was removed in
0a46933c4d81573e78ce16cd215ba155a3114fce.

21 months agorustdoc: remove unused CSS `#main-content > .line-numbers`
Michael Howell [Sat, 24 Sep 2022 17:03:59 +0000 (10:03 -0700)]
rustdoc: remove unused CSS `#main-content > .line-numbers`

This selector was added in 10b937028660e079cf15735cfb5c4d58892fb10e. It
became unreachable when 09150f81930e035254e58ee56f5905c2eb421617 made it so
that `.line-numbers` are always nested below `.example-wrap`, even on
source pages.

21 months agoAuto merge of #102234 - matthiaskrgr:rollup-5cb20l1, r=matthiaskrgr
bors [Sat, 24 Sep 2022 14:37:01 +0000 (14:37 +0000)]
Auto merge of #102234 - matthiaskrgr:rollup-5cb20l1, r=matthiaskrgr

Rollup of 8 pull requests

Successful merges:

 - #100823 (Refactor some `std` code that works with pointer offstes)
 - #102088 (Fix wrongly refactored Lift impl)
 - #102109 (resolve: Set effective visibilities for imports more precisely)
 - #102186 (Add const_closure, Constify Try trait)
 - #102203 (rustdoc: remove no-op CSS `#source-sidebar { z-index }`)
 - #102204 (Make `ManuallyDrop` satisfy `~const Destruct`)
 - #102210 (diagnostics: avoid syntactically invalid suggestion in if conditionals)
 - #102226 (bootstrap/miri: switch to non-deprecated env var for setting the sysroot folder)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agoseparate definitions and `HIR` owners
Takayuki Maeda [Tue, 20 Sep 2022 05:11:23 +0000 (14:11 +0900)]
separate definitions and `HIR` owners

fix a ui test

use `into`

fix clippy ui test

fix a run-make-fulldeps test

implement `IntoQueryParam<DefId>` for `OwnerId`

use `OwnerId` for more queries

change the type of `ParentOwnerIterator::Item` to `(OwnerId, OwnerNode)`

21 months agoRollup merge of #102226 - RalfJung:miri-sysroot-build, r=oli-obk
Matthias Krüger [Sat, 24 Sep 2022 12:29:56 +0000 (14:29 +0200)]
Rollup merge of #102226 - RalfJung:miri-sysroot-build, r=oli-obk

bootstrap/miri: switch to non-deprecated env var for setting the sysroot folder

r? `@oli-obk`

21 months agoRollup merge of #102210 - notriddle:notriddle/did-you-mean, r=cjgillot
Matthias Krüger [Sat, 24 Sep 2022 12:29:56 +0000 (14:29 +0200)]
Rollup merge of #102210 - notriddle:notriddle/did-you-mean, r=cjgillot

diagnostics: avoid syntactically invalid suggestion in if conditionals

Fixes #101065

21 months agoRollup merge of #102204 - fee1-dead-contrib:manually-drop-trivially-drop, r=oli-obk
Matthias Krüger [Sat, 24 Sep 2022 12:29:55 +0000 (14:29 +0200)]
Rollup merge of #102204 - fee1-dead-contrib:manually-drop-trivially-drop, r=oli-obk

Make `ManuallyDrop` satisfy `~const Destruct`

21 months agoRollup merge of #102203 - notriddle:notriddle/source-sidebar, r=GuillaumeGomez
Matthias Krüger [Sat, 24 Sep 2022 12:29:55 +0000 (14:29 +0200)]
Rollup merge of #102203 - notriddle:notriddle/source-sidebar, r=GuillaumeGomez

rustdoc: remove no-op CSS `#source-sidebar { z-index }`

This rule became redundant in 07e3f998b1ceb4b8d2a7992782e60f5e776aa114. When `#source-sidebar` became nested below `.sidebar`, it went from being `position: fixed` to `position: static`, and according to MDN's [z-index] documentation, this means it has no effect.

[z-index]: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index

21 months agoRollup merge of #102186 - ink-feather-org:const_try_trait, r=fee1-dead
Matthias Krüger [Sat, 24 Sep 2022 12:29:54 +0000 (14:29 +0200)]
Rollup merge of #102186 - ink-feather-org:const_try_trait, r=fee1-dead

Add const_closure, Constify Try trait

Adds a struct for creating const `FnMut` closures (for now just copy pasted form my [const_closure](https://crates.io/crates/const_closure) crate).
I'm not sure if this way is how it should be done.
The `ConstFnClosure` and `ConstFnOnceClosure` structs can probably also be entirely removed.

This is then used to constify the try trait.

Not sure if i should add const_closure in its own pr and maybe make it public behind a perma-unstable feature gate.

cc ```@fee1-dead```  ```@rust-lang/wg-const-eval```

21 months agoRollup merge of #102109 - petrochenkov:addids, r=oli-obk
Matthias Krüger [Sat, 24 Sep 2022 12:29:53 +0000 (14:29 +0200)]
Rollup merge of #102109 - petrochenkov:addids, r=oli-obk

resolve: Set effective visibilities for imports more precisely

Instead of setting them for all primary and additional IDs of the import, only set them for the binding's true ID.

21 months agoRollup merge of #102088 - oli-obk:cleanups, r=bjorn3
Matthias Krüger [Sat, 24 Sep 2022 12:29:53 +0000 (14:29 +0200)]
Rollup merge of #102088 - oli-obk:cleanups, r=bjorn3

Fix wrongly refactored Lift impl

see https://github.com/rust-lang/rust/pull/101858#issuecomment-1252713639

r? ``@bjorn3``

21 months agoRollup merge of #100823 - WaffleLapkin:less_offsets, r=scottmcm
Matthias Krüger [Sat, 24 Sep 2022 12:29:52 +0000 (14:29 +0200)]
Rollup merge of #100823 - WaffleLapkin:less_offsets, r=scottmcm

Refactor some `std` code that works with pointer offstes

This PR replaces `pointer::offset` in standard library with `pointer::add` and `pointer::sub`, [re]moving some casts and using `.addr()` while we are at it.

This is a more complicated refactor than all other sibling PRs, so take a closer look when reviewing, please 😃  (though I've checked this multiple times and it looks fine).

r? ````@scottmcm````

_split off from #100746, continuation of #100822_

21 months agoAuto merge of #102167 - thomcc:exclusive-inline, r=scottmcm
bors [Sat, 24 Sep 2022 12:17:53 +0000 (12:17 +0000)]
Auto merge of #102167 - thomcc:exclusive-inline, r=scottmcm

Add `#[inline]` to trivial functions on `core::sync::Exclusive`

When optimizing for size things like these sometimes don't inlined even though they're generic. This is bad because they're no-ops.

Only dodgy one is poll I guess since it forwards to the inner poll, but it's not like we're doing `#[inline(always)]` here.

21 months agoAuto merge of #102064 - cjgillot:revert, r=Mark-Simulacrum
bors [Sat, 24 Sep 2022 09:36:29 +0000 (09:36 +0000)]
Auto merge of #102064 - cjgillot:revert, r=Mark-Simulacrum

Revert perf-regression 101620

Reverts #101862 #101620

r? `@Mark-Simulacrum`

21 months agoAuto merge of #102223 - matthiaskrgr:rollup-wb1qdhk, r=matthiaskrgr
bors [Sat, 24 Sep 2022 06:55:32 +0000 (06:55 +0000)]
Auto merge of #102223 - matthiaskrgr:rollup-wb1qdhk, r=matthiaskrgr

Rollup of 11 pull requests

Successful merges:

 - #101780 (Add a platform support document for Android)
 - #102044 (Remove `RtlGenRandom` (take two))
 - #102081 (Adding ignore fuchsia tests for execvp (pre_exec))
 - #102082 (Adding ignore fuchsia non-applicable commands)
 - #102146 (rustdoc: CSS prevent sidebar width change jank)
 - #102152 (Calculate `ProjectionTy::trait_def_id` for return-position `impl Trait` in trait correctly)
 - #102175 (Also require other subtrees to always build successfully)
 - #102176 (Add `llvm-dis` to the set of tools in `ci-llvm`)
 - #102188 (Update doc after renaming `fn is_zero`)
 - #102199 (Improve rustdoc GUI tests)
 - #102218 (Document some missing command-line arguments)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

21 months agobootstrap/miri: switch to non-deprecated env var for setting the sysroot folder
Ralf Jung [Sat, 24 Sep 2022 06:53:40 +0000 (08:53 +0200)]
bootstrap/miri: switch to non-deprecated env var for setting the sysroot folder

21 months agoAllow specializing on const trait bounds
Deadbeef [Sat, 24 Sep 2022 06:02:49 +0000 (06:02 +0000)]
Allow specializing on const trait bounds

21 months agoRollup merge of #102218 - ehuss:rustc-flags, r=JohnTitor
Matthias Krüger [Sat, 24 Sep 2022 05:38:58 +0000 (07:38 +0200)]
Rollup merge of #102218 - ehuss:rustc-flags, r=JohnTitor

Document some missing command-line arguments

The rustc command-line arguments docs should document all of the stable arguments for rustc. Two were missing, `--force-warn` which was somewhat documented in the lint-levels chapter, but should also include a mention in the arguments list.  `--diagnostic-width` was stabilized in #95635, but the docs weren't updated.

21 months agoRollup merge of #102199 - GuillaumeGomez:improve-rustdoc-gui-tests, r=notriddle
Matthias Krüger [Sat, 24 Sep 2022 05:38:58 +0000 (07:38 +0200)]
Rollup merge of #102199 - GuillaumeGomez:improve-rustdoc-gui-tests, r=notriddle

Improve rustdoc GUI tests

I finally finished the update so we can now store values in variables and use them. It improves things nicely.

r? ``@notriddle``

21 months agoRollup merge of #102188 - flba-eb:doc_missed_at_rename, r=jyn514
Matthias Krüger [Sat, 24 Sep 2022 05:38:57 +0000 (07:38 +0200)]
Rollup merge of #102188 - flba-eb:doc_missed_at_rename, r=jyn514

Update doc after renaming `fn is_zero`

`fn is_zero` has been renamed to `fn count_is_zero` in 1b1bf2463619e23eba1b36b6d7df276ce73563dd.
This patch updates the documentation accordingly.