]> git.lizzy.rs Git - rust.git/log
rust.git
22 months ago Rustdoc-Json: List impls for primitives
Nixon Enraght-Moony [Mon, 26 Sep 2022 17:06:48 +0000 (18:06 +0100)]
 Rustdoc-Json: List impls for primitives

 Closes #101695

22 months agoDocument that Display entails ToString
Matthew Esposito [Mon, 26 Sep 2022 16:50:45 +0000 (12:50 -0400)]
Document that Display entails ToString

22 months agorustdoc: merge `table { border-collapse } into `.docblock table`
Michael Howell [Mon, 26 Sep 2022 16:54:44 +0000 (09:54 -0700)]
rustdoc: merge `table { border-collapse } into `.docblock table`

This was added in 510107815fe888319028c5e96001cdee70e7a931, to fix the
display of the module items and search results tables (see the discussion in
https://github.com/rust-lang/rust/pull/86725).

Those aren't tables any more. The only remaining table is in docblock, which
needs this attribute to look right.

22 months agorustdoc: remove unneeded CSS `td, th { padding 0 }`
Michael Howell [Mon, 26 Sep 2022 16:20:20 +0000 (09:20 -0700)]
rustdoc: remove unneeded CSS `td, th { padding 0 }`

This was added in 510107815fe888319028c5e96001cdee70e7a931, to fix
the display of the module items and search results tables (see the discussion
in https://github.com/rust-lang/rust/pull/86725).

Those aren't tables any more. The only remaining table is in docblock, which
has its own padding declarations.

22 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`

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

22 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

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

22 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

22 months agomacros: support diagnostic derive on enums
David Wood [Fri, 23 Sep 2022 11:49:02 +0000 (12:49 +0100)]
macros: support diagnostic derive on enums

Signed-off-by: David Wood <david.wood@huawei.com>
22 months agoremove outdated coherence hack
lcnr [Mon, 26 Sep 2022 10:41:12 +0000 (12:41 +0200)]
remove outdated coherence hack

22 months agoImprove code example for Option::unwrap_or_default
Guillaume Gomez [Sun, 25 Sep 2022 21:58:33 +0000 (23:58 +0200)]
Improve code example for Option::unwrap_or_default

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

22 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

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

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

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

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

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

22 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

22 months agomake invalid_value lint a bit smarter around enums
Ralf Jung [Sun, 25 Sep 2022 20:56:01 +0000 (22:56 +0200)]
make invalid_value lint a bit smarter around enums

22 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

22 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.

22 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``

22 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.

22 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

22 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.

22 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

22 months agoInline and remove `cook_lexer_token`.
Nicholas Nethercote [Mon, 26 Sep 2022 02:12:58 +0000 (12:12 +1000)]
Inline and remove `cook_lexer_token`.

This is a small performance win, alas.

22 months agoAdd `rustc_lexer::TokenKind::Eof`.
Nicholas Nethercote [Mon, 26 Sep 2022 03:06:15 +0000 (13:06 +1000)]
Add `rustc_lexer::TokenKind::Eof`.

For alignment with `rust_ast::TokenKind::Eof`. Plus it's a bit faster,
due to less `Option` manipulation in `StringReader::next_token`.

22 months agoRename some things.
Nicholas Nethercote [Mon, 26 Sep 2022 03:05:54 +0000 (13:05 +1000)]
Rename some things.

`Cursor` keeps track of the position within the current token. But it
uses confusing names that don't make it clear that the "length consumed"
is just within the current token.

This commit renames things to make this clearer.

22 months agoUse less DRY in `cook_lexer_token`.
Nicholas Nethercote [Mon, 26 Sep 2022 01:12:06 +0000 (11:12 +1000)]
Use less DRY in `cook_lexer_token`.

This is a case where a small amount of repetition results in code that
is faster and easier to read.

22 months agoMake `rustc_lexer::cursor::Cursor` public.
Nicholas Nethercote [Sun, 25 Sep 2022 23:18:23 +0000 (09:18 +1000)]
Make `rustc_lexer::cursor::Cursor` public.

`Cursor` is currently hidden, and the main tokenization path uses
`rustc_lexer::first_token` which involves constructing a new `Cursor`
for every single token, which is weird. Also, `first_token` also can't
handle empty input, so callers have to check for that first.

This commit makes `Cursor` public, so `StringReader` can contain a
`Cursor`, which results in a simpler structure. The commit also changes
`StringReader::advance_token` so it returns an `Option<Token>`,
simplifying the the empty input case.

22 months ago[ui] Rearrange `StringReader`/`TokenTreesReader` creation.
Nicholas Nethercote [Sun, 25 Sep 2022 22:50:52 +0000 (08:50 +1000)]
[ui] Rearrange `StringReader`/`TokenTreesReader` creation.

`TokenTreesReader` wraps a `StringReader`, but the `into_token_trees`
function obscures this. This commit moves to a more straightforward
control flow.

22 months agoRemove `ast::Token::take`.
Nicholas Nethercote [Mon, 26 Sep 2022 02:57:37 +0000 (12:57 +1000)]
Remove `ast::Token::take`.

Instead of replacing `TokenTreesReader::token` in two steps, we can just
do it in one, which is both simpler and faster.

22 months agoRemove `TokenTreesReader::bump`.
Nicholas Nethercote [Wed, 21 Sep 2022 07:03:09 +0000 (17:03 +1000)]
Remove `TokenTreesReader::bump`.

It's an unnecessary layer that obfuscates when I am looking for
optimizations.

22 months agoClarify spacing computation.
Nicholas Nethercote [Wed, 21 Sep 2022 06:38:28 +0000 (16:38 +1000)]
Clarify spacing computation.

The spacing computation is done in two parts. In the first part
`next_token` and `bump` use `Spacing::Alone` to mean "preceded by
whitespace" and `Spacing::Joint` to mean the opposite. In the second
part `parse_token_tree_other` then adjusts the `spacing` value to mean
the usual thing (i.e. "is the following token joinable punctuation?").
This shift in meaning is very confusing and it took me some time to
understand what was going on.

This commit changes the first part to use a bool, and adds some
comments, which makes things much clearer.

22 months agoMove `#!` checking.
Nicholas Nethercote [Wed, 21 Sep 2022 05:18:36 +0000 (15:18 +1000)]
Move `#!` checking.

Currently does the "is this a `#!` at the start of the file?" check for
every single token(!)

This commit moves it so it only happens once.

22 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

22 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

22 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`

22 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

22 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.

22 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`

22 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

22 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

22 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

22 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

22 months agoRemove unnecessary `spacing` assignment.
Nicholas Nethercote [Wed, 21 Sep 2022 05:13:20 +0000 (15:13 +1000)]
Remove unnecessary `spacing` assignment.

It has no useful effect.

22 months agoRearrange `TokenTreesReader::parse_token_tree`.
Nicholas Nethercote [Wed, 21 Sep 2022 04:01:39 +0000 (14:01 +1000)]
Rearrange `TokenTreesReader::parse_token_tree`.

`parse_token_tree` is basically a match with four arms: `Eof`,
`OpenDelim`, `CloseDelim`, and "other". It has two call sites, and at
each call site one of the arms is unreachable. It's also not inlined.

This commit removes `parse_token_tree` by splitting it into four
functions and inlining them. This avoids some repeated conditional
tests and also some non-inlined function calls on the hot path.

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

22 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`

22 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

22 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.

22 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

22 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.

22 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

22 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

22 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

22 months agotrivial fix on fallback
yukang [Sun, 25 Sep 2022 16:53:55 +0000 (00:53 +0800)]
trivial fix on fallback

22 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

22 months agomore code refactor on smart_resolve_report_errors
yukang [Sun, 25 Sep 2022 16:40:57 +0000 (00:40 +0800)]
more code refactor on smart_resolve_report_errors

22 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.

22 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

22 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).

22 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

22 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.

22 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

22 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`.

22 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.

22 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

22 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``

22 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.

22 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.

22 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

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

22 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.

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

22 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

22 months agoFix scoping for let-else.
Camille GILLOT [Mon, 19 Sep 2022 20:53:21 +0000 (22:53 +0200)]
Fix scoping for let-else.

22 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.

22 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.

22 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.

22 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.

22 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

22 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.

22 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)

22 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.)

22 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`

22 months agoremove comment
Ellis Hoag [Sat, 24 Sep 2022 22:03:14 +0000 (15:03 -0700)]
remove comment

22 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

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

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

22 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.

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

22 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

22 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)

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

22 months agofix lifetime error
Ellis Hoag [Sat, 24 Sep 2022 18:36:16 +0000 (11:36 -0700)]
fix lifetime error

22 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`