]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoFixup missing renames from `#[main]` to `#[rustc_main]`
Martin Nordholts [Wed, 22 Jun 2022 16:23:21 +0000 (18:23 +0200)]
Fixup missing renames from `#[main]` to `#[rustc_main]`

In fc357039f9 `#[main]` was removed and replaced with `#[rustc_main]`.
In some place the rename was forgotten, which makes the current code
confusing, because at first glance it seems that `#[main]` is still
around. Perform the renames also in these places.

2 years agoAdd test for keywords in rustdoc JSON output
Guillaume Gomez [Wed, 22 Jun 2022 14:26:22 +0000 (16:26 +0200)]
Add test for keywords in rustdoc JSON output

2 years agoFilter out keyword items in rustdoc JSON output
Guillaume Gomez [Wed, 22 Jun 2022 14:26:04 +0000 (16:26 +0200)]
Filter out keyword items in rustdoc JSON output

2 years agoimplement `iter_projections` function on `PlaceRef`
Rose Hudson [Wed, 22 Jun 2022 13:06:13 +0000 (14:06 +0100)]
implement `iter_projections` function on `PlaceRef`

this makes the api more flexible. the original function now calls the PlaceRef
version to avoid duplicating the code.

2 years agoWork around llvm 12's memory ordering restrictions.
Mara Bos [Wed, 22 Jun 2022 12:48:49 +0000 (14:48 +0200)]
Work around llvm 12's memory ordering restrictions.

Older llvm has the pre-C++17 restriction on success and failure memory
ordering, requiring the former to be at least as strong as the latter.
So, for llvm 12, this upgrades the success ordering to a stronger one if
necessary.

2 years agoAddress reviewer comments
Raoul Strackx [Wed, 22 Jun 2022 11:47:32 +0000 (13:47 +0200)]
Address reviewer comments

2 years agouse `-Cstrip=debuginfo` with ui tests to reduce disk space usage
klensy [Wed, 15 Jun 2022 13:36:19 +0000 (16:36 +0300)]
use `-Cstrip=debuginfo` with ui tests to reduce disk space usage

2 years agoAuto merge of #98279 - cjgillot:all-fresh-nofn, r=petrochenkov
bors [Wed, 22 Jun 2022 10:48:58 +0000 (10:48 +0000)]
Auto merge of #98279 - cjgillot:all-fresh-nofn, r=petrochenkov

Create elided lifetime parameters for function-like types

Split from https://github.com/rust-lang/rust/pull/97720

This PR refactor lifetime generic parameters in bare function types and parenthesized traits to introduce the additional required lifetimes as fresh parameters in a `for<>` bound.

This PR does the same to lifetimes appearing in closure signatures, and as-if introducing `for<>` bounds on closures (without the associated change in semantics).

r? `@petrochenkov`

2 years agoAuto merge of #98375 - JohnTitor:rollup-e5c6rgo, r=JohnTitor
bors [Wed, 22 Jun 2022 08:07:46 +0000 (08:07 +0000)]
Auto merge of #98375 - JohnTitor:rollup-e5c6rgo, r=JohnTitor

Rollup of 10 pull requests

Successful merges:

 - #95446 (update CPU usage script)
 - #96768 (Use futex based thread parker on Fuchsia.)
 - #97454 (Add release notes for 1.62)
 - #97516 (clarify how Rust atomics correspond to C++ atomics)
 - #97818 (Point at return expression for RPIT-related error)
 - #97895 (Simplify `likely!` and `unlikely!` macro)
 - #98005 (Add some tests for impossible bounds)
 - #98226 (Document unstable `--extern` options)
 - #98356 (Add missing period)
 - #98363 (remove use of &Alloc in btree tests)

Failed merges:

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

2 years agoFix debug info test
Robin Raymond [Wed, 22 Jun 2022 06:51:39 +0000 (06:51 +0000)]
Fix debug info test

2 years agoRollup merge of #98363 - RalfJung:btree-test-ref-alloc, r=thomcc
Yuki Okushi [Wed, 22 Jun 2022 06:16:17 +0000 (15:16 +0900)]
Rollup merge of #98363 - RalfJung:btree-test-ref-alloc, r=thomcc

remove use of &Alloc in btree tests

I missed these in https://github.com/rust-lang/rust/pull/98233.

r? ``@thomcc``

2 years agoRollup merge of #98356 - lucasthormann:patch-1, r=Mark-Simulacrum
Yuki Okushi [Wed, 22 Jun 2022 06:16:16 +0000 (15:16 +0900)]
Rollup merge of #98356 - lucasthormann:patch-1, r=Mark-Simulacrum

Add missing period

2 years agoRollup merge of #98226 - ChrisDenton:doc-extern-options, r=ehuss
Yuki Okushi [Wed, 22 Jun 2022 06:16:15 +0000 (15:16 +0900)]
Rollup merge of #98226 - ChrisDenton:doc-extern-options, r=ehuss

Document unstable `--extern` options

These are needed for Cargo's `build-std` feature and for anyone who wanted to do a similar thing outside of Cargo.

2 years agoRollup merge of #98005 - compiler-errors:impossible-bounds, r=Mark-Simulacrum
Yuki Okushi [Wed, 22 Jun 2022 06:16:14 +0000 (15:16 +0900)]
Rollup merge of #98005 - compiler-errors:impossible-bounds, r=Mark-Simulacrum

Add some tests for impossible bounds

Adds test for #93008
Adds test for #94680
Closes #94999
Closes #95640

2 years agoRollup merge of #97895 - nbdd0121:unlikely, r=estebank
Yuki Okushi [Wed, 22 Jun 2022 06:16:13 +0000 (15:16 +0900)]
Rollup merge of #97895 - nbdd0121:unlikely, r=estebank

Simplify `likely!` and `unlikely!` macro

The corresponding intrinsics have long been safe-to-call, so the unsafe block is no longer needed.

2 years agoRollup merge of #97818 - compiler-errors:rpit-error-spanned, r=oli-obk
Yuki Okushi [Wed, 22 Jun 2022 06:16:12 +0000 (15:16 +0900)]
Rollup merge of #97818 - compiler-errors:rpit-error-spanned, r=oli-obk

Point at return expression for RPIT-related error

Certainly this needs some diagnostic refining, but I wanted to show that it was possible first and foremost. Not sure if this is the right approach. Open to feedback.

Fixes #80583

2 years agoRollup merge of #97516 - RalfJung:atomics, r=joshtriplett
Yuki Okushi [Wed, 22 Jun 2022 06:16:11 +0000 (15:16 +0900)]
Rollup merge of #97516 - RalfJung:atomics, r=joshtriplett

clarify how Rust atomics correspond to C++ atomics

``@cbeuw`` noted in https://github.com/rust-lang/miri/pull/1963 that the correspondence between C++ atomics and Rust atomics is not quite as obvious as one might think, since in Rust I can use `get_mut` to treat previously non-atomic data as atomic. However, I think using C++20 `atomic_ref`, we can establish a suitable relation between the two -- or do you see problems with that ``@cbeuw?`` (I recall you said there was some issue, but it was deep inside that PR and Github makes it impossible to find...)

Cc ``@thomcc;`` not sure whom else to ping for atomic memory model things.

2 years agoRollup merge of #97454 - Mark-Simulacrum:relnotes, r=Mark-Simulacrum
Yuki Okushi [Wed, 22 Jun 2022 06:16:10 +0000 (15:16 +0900)]
Rollup merge of #97454 - Mark-Simulacrum:relnotes, r=Mark-Simulacrum

Add release notes for 1.62

cc ``@rust-lang/release``

r? ``@pietroalbini``

2 years agoRollup merge of #96768 - m-ou-se:futex-fuchsia, r=tmandry
Yuki Okushi [Wed, 22 Jun 2022 06:16:09 +0000 (15:16 +0900)]
Rollup merge of #96768 - m-ou-se:futex-fuchsia, r=tmandry

Use futex based thread parker on Fuchsia.

2 years agoRollup merge of #95446 - notseanray:master, r=Mark-Simulacrum
Yuki Okushi [Wed, 22 Jun 2022 06:16:08 +0000 (15:16 +0900)]
Rollup merge of #95446 - notseanray:master, r=Mark-Simulacrum

update CPU usage script

I've made slight changes to the CPU usage plot script with updated links from the [ci2 aws instance](https://rust-lang-ci2.s3.amazonaws.com/).

2 years agoadd "was" to pluralize macro and use it
Takayuki Maeda [Wed, 22 Jun 2022 05:56:40 +0000 (14:56 +0900)]
add "was" to pluralize macro and use it

2 years agoRemove individual crate checks for bootstrap in tidy
Joshua Nelson [Wed, 22 Jun 2022 05:31:23 +0000 (00:31 -0500)]
Remove individual crate checks for bootstrap in tidy

This duplicates a lot of checking, and doesn't seem particularly useful -
these are already caught in review.

Note that this still keeps the license check.

2 years agoRemove vendoring support when building from git sources
Joshua Nelson [Wed, 22 Jun 2022 01:40:23 +0000 (20:40 -0500)]
Remove vendoring support when building from git sources

This is difficult to support without submodule handling in bootstrap.py, because cargo will refuse
to vendor sources unless it knows the Cargo.toml files of all tools in tree. Moving vendor support
to rustbuild means that rustbuild will be built without vendoring.

Rather than trying to solve this, just remove support altogether and require
people to use `rustc-src` if they want vendoring (or run `cargo vendor` manually).

2 years agoAdd bootstrap to tidy check
Joshua Nelson [Sun, 29 May 2022 15:37:05 +0000 (10:37 -0500)]
Add bootstrap to tidy check

2 years agopoint to type param definition when not finding variant, method and assoc type
Takayuki Maeda [Mon, 20 Jun 2022 15:43:20 +0000 (00:43 +0900)]
point to type param definition when not finding variant, method and assoc type

use `def_ident_span` , `body_owner_def_id` instead of `in_progress_typeck_results`, `guess_head_span`

use `body_id.owner` directly

add description to label

2 years agoclarify Arc::clone overflow check comment
Ralf Jung [Wed, 22 Jun 2022 00:11:28 +0000 (17:11 -0700)]
clarify Arc::clone overflow check comment

2 years agoFully remove submodule handling from bootstrap.py
Joshua Nelson [Sun, 29 May 2022 07:26:19 +0000 (02:26 -0500)]
Fully remove submodule handling from bootstrap.py

These submodules were previously updated in python because Cargo gives a hard error if toml files
are missing from the workspace:

```
error: failed to load manifest for workspace member `/home/jnelson/rust-lang/rust/src/tools/rls`

Caused by:
  failed to read `/home/jnelson/rust-lang/rust/src/tools/rls/Cargo.toml`

Caused by:
  No such file or directory (os error 2)
failed to run: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /home/jnelson/rust-lang/rust/src/bootstrap/Cargo.toml
```

However, bootstrap doesn't actually need to be part of the workspace.
Remove it so we can move submodule handling fully to Rust, avoiding duplicate code between Rust and Python.

Note that this does break `cargo run`; it has to be `cd src/bootstrap && cargo run` now.
Given that we're planning to make the main entrypoint a shell script (or rust binary),
I think this is a good tradeoff for reduced complexity in bootstrap.py.

2 years agoDocument unstable `--extern` options
Chris Denton [Sat, 18 Jun 2022 10:20:53 +0000 (11:20 +0100)]
Document unstable `--extern` options

Co-Authored-By: Joshua Nelson <github@jyn.dev>
Co-Authored-By: Eric Huss <eric@huss.org>
2 years agostop pointing at definitions of missing fields
Takayuki Maeda [Wed, 22 Jun 2022 03:01:41 +0000 (12:01 +0900)]
stop pointing at definitions of missing fields

2 years agoAuto merge of #97853 - TaKO8Ki:emit-only-one-note-per-unused-struct-field, r=estebank
bors [Wed, 22 Jun 2022 02:51:55 +0000 (02:51 +0000)]
Auto merge of #97853 - TaKO8Ki:emit-only-one-note-per-unused-struct-field, r=estebank

Collapse multiple dead code warnings into a single diagnostic

closes #97643

2 years agoAdd some tests for impossible bounds
Michael Goulet [Sat, 11 Jun 2022 21:31:33 +0000 (14:31 -0700)]
Add some tests for impossible bounds

2 years agoPoint at return expression for RPIT-related error
Michael Goulet [Tue, 7 Jun 2022 06:20:13 +0000 (23:20 -0700)]
Point at return expression for RPIT-related error

2 years agoImprove suggestion for calling closure on type mismatch
Michael Goulet [Mon, 20 Jun 2022 06:11:31 +0000 (23:11 -0700)]
Improve suggestion for calling closure on type mismatch

2 years agoAddress review comments from #98259
Joshua Nelson [Wed, 22 Jun 2022 00:43:46 +0000 (19:43 -0500)]
Address review comments from #98259

It got merged so fast I didn't have time to make changes xD

2 years agoAuto merge of #98359 - JohnTitor:rollup-v30vyzr, r=JohnTitor
bors [Wed, 22 Jun 2022 00:28:20 +0000 (00:28 +0000)]
Auto merge of #98359 - JohnTitor:rollup-v30vyzr, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #97867 (lub: don't bail out due to empty binders)
 - #98099 (interpret: convert_tag_add_extra: allow tagger to raise errors)
 - #98199 (Move some tests to more reasonable directories)
 - #98334 (Add a full regression test for #73727)
 - #98336 (Remove the unused-`#[doc(hidden)]` logic from the `unused_attributes` lint)
 - #98344 (This comment is out dated and misleading, the arm is about TAITs)

Failed merges:

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

2 years agohedge our bets
Ralf Jung [Tue, 21 Jun 2022 23:54:54 +0000 (16:54 -0700)]
hedge our bets

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
2 years agoremove use of &Alloc in btree tests
Ralf Jung [Tue, 21 Jun 2022 23:38:12 +0000 (16:38 -0700)]
remove use of &Alloc in btree tests

2 years agoRollup merge of #98344 - spastorino:remove-misleading-comment, r=oli-obk
Yuki Okushi [Tue, 21 Jun 2022 22:04:05 +0000 (07:04 +0900)]
Rollup merge of #98344 - spastorino:remove-misleading-comment, r=oli-obk

This comment is out dated and misleading, the arm is about TAITs

r? ```@oli-obk```

```@oli-obk``` unsure if you want to add a different comment of some sort.

```@bors``` rollup=always

2 years agoRollup merge of #98336 - fmease:remove-faulty-doc-hidden-lint, r=GuillaumeGomez
Yuki Okushi [Tue, 21 Jun 2022 22:04:04 +0000 (07:04 +0900)]
Rollup merge of #98336 - fmease:remove-faulty-doc-hidden-lint, r=GuillaumeGomez

Remove the unused-`#[doc(hidden)]` logic from the `unused_attributes` lint

Fixes #96890.

It was found out that `#[doc(hidden)]` on trait impl items does indeed have an effect on the generated documentation (see the linked issue). In my opinion and the one of [others](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Validy.20checks.20for.20.60.23.5Bdoc.28hidden.29.5D.60/near/281846219), rustdoc's output is actually a bit flawed in that regard but that should be tracked in a new issue I suppose (I will open an issue for that in the near future).

The check was introduced in #96008 which is marked to be part of version `1.62` (current `beta`). As far as I understand, this means that **this PR needs to be backported** to `beta` to fix #96890 on time. Correct me if I am wrong.

CC `@dtolnay` (in case you would like to agree or disagree with my decision to fully remove this check)

`@rustbot` label A-lint T-compiler T-rustdoc

r? `@rust-lang/compiler`

2 years agoRollup merge of #98334 - JohnTitor:issue-73727, r=compiler-errors
Yuki Okushi [Tue, 21 Jun 2022 22:04:03 +0000 (07:04 +0900)]
Rollup merge of #98334 - JohnTitor:issue-73727, r=compiler-errors

Add a full regression test for #73727

Closes #73727

This also moves a test to the `issues` directory as it's also tested on the adt_const_params feature.

r? ```@compiler-errors```

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2 years agoRollup merge of #98199 - c410-f3r:z-errors, r=petrochenkov
Yuki Okushi [Tue, 21 Jun 2022 22:04:02 +0000 (07:04 +0900)]
Rollup merge of #98199 - c410-f3r:z-errors, r=petrochenkov

Move some tests to more reasonable directories

r? `@petrochenkov`

2 years agoRollup merge of #98099 - RalfJung:convert_tag_add_extra, r=oli-obk
Yuki Okushi [Tue, 21 Jun 2022 22:03:59 +0000 (07:03 +0900)]
Rollup merge of #98099 - RalfJung:convert_tag_add_extra, r=oli-obk

interpret: convert_tag_add_extra: allow tagger to raise errors

Needed for https://github.com/rust-lang/miri/issues/2234

r? `@oli-obk`

2 years agoRollup merge of #97867 - lcnr:lub-binder, r=oli-obk
Yuki Okushi [Tue, 21 Jun 2022 22:03:59 +0000 (07:03 +0900)]
Rollup merge of #97867 - lcnr:lub-binder, r=oli-obk

lub: don't bail out due to empty binders

allows for the following to compile. The equivalent code using `struct Wrapper<'upper>(fn(&'upper ());` already compiles on stable.
```rust
let _: fn(&'upper ()) = match v {
    true => lt_in_fn::<'a>(),
    false => lt_in_fn::<'b>(),
};
```
see https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=7034a677190110941223cafac6632f70 for a complete example

r? ```@rust-lang/types```

2 years agoFix typo
Lucas Thormann [Tue, 21 Jun 2022 20:40:08 +0000 (15:40 -0500)]
Fix typo

2 years agoUpdate Emscripten's no_default_libraries handling
Hood Chatham [Tue, 21 Jun 2022 20:19:44 +0000 (13:19 -0700)]
Update Emscripten's no_default_libraries handling

2 years agoMigrate `builtin-macros-expected-one-cfg-pattern` to `SessionDiagnostic`
beetrees [Tue, 21 Jun 2022 19:20:00 +0000 (20:20 +0100)]
Migrate `builtin-macros-expected-one-cfg-pattern` to `SessionDiagnostic`

2 years agoRustdoc fallout.
Camille GILLOT [Sat, 4 Jun 2022 09:53:34 +0000 (11:53 +0200)]
Rustdoc fallout.

2 years agoUse CreateParameter mode for closures too.
Camille GILLOT [Mon, 23 May 2022 13:50:02 +0000 (15:50 +0200)]
Use CreateParameter mode for closures too.

2 years agoAlways create parameters for functions-like types.
Camille GILLOT [Wed, 11 May 2022 20:49:39 +0000 (22:49 +0200)]
Always create parameters for functions-like types.

2 years agoMigrate `builtin-macros-requires-cfg-pattern` to `SessionDiagnostic`
beetrees [Tue, 21 Jun 2022 19:10:31 +0000 (20:10 +0100)]
Migrate `builtin-macros-requires-cfg-pattern` to `SessionDiagnostic`

2 years agoAdd UI test for `cfg!(foo, bar)`
beetrees [Tue, 21 Jun 2022 18:28:22 +0000 (19:28 +0100)]
Add UI test for `cfg!(foo, bar)`

2 years agoAdd `create_err` and `emit_err` to `ExtCtxt`
beetrees [Tue, 21 Jun 2022 17:56:04 +0000 (18:56 +0100)]
Add `create_err` and `emit_err` to `ExtCtxt`

2 years agoRemove unecessary references to TypeFolder::Error
Alan Egerton [Tue, 21 Jun 2022 11:15:05 +0000 (12:15 +0100)]
Remove unecessary references to TypeFolder::Error

2 years agoReverse folder hierarchy
Alan Egerton [Mon, 20 Jun 2022 20:10:43 +0000 (21:10 +0100)]
Reverse folder hierarchy

#91318 introduced a trait for infallible folders distinct from the fallible version.  For some reason (completely unfathomable to me now that I look at it with fresh eyes), the infallible trait was a supertrait of the fallible one: that is, all fallible folders were required to also be infallible.  Moreover the `Error` associated type was defined on the infallible trait!  It's so absurd that it has me questioning whether I was entirely sane.

This trait reverses the hierarchy, so that the fallible trait is a supertrait of the infallible one: all infallible folders are required to also be fallible (which is a trivial blanket implementation).  This of course makes much more sense!  It also enables the `Error` associated type to sit on the fallible trait, where it sensibly belongs.

There is one downside however: folders expose a `tcx` accessor method.  Since the blanket fallible implementation for infallible folders only has access to a generic `F: TypeFolder`, we need that trait to expose such an accessor to which we can delegate.  Alternatively it's possible to extract that accessor into a separate `HasTcx` trait (or similar) that would then be a supertrait of both the fallible and infallible folder traits: this would ensure that there's only one unambiguous `tcx` method, at the cost of a little additional boilerplate.  If desired, I can submit that as a separate PR.

r? @jackh726

2 years agoAuto merge of #98098 - bjorn3:archive_refactor, r=michaelwoerister
bors [Tue, 21 Jun 2022 16:24:56 +0000 (16:24 +0000)]
Auto merge of #98098 - bjorn3:archive_refactor, r=michaelwoerister

Remove the source archive functionality of ArchiveWriter

We now build archives through strictly additive means rather than taking an existing archive and potentially substracting parts. This is simpler and makes it easier to swap out the archive writer in https://github.com/rust-lang/rust/pull/97485.

2 years agoThis comment is out dated and misleading
Santiago Pastorino [Tue, 21 Jun 2022 15:40:32 +0000 (12:40 -0300)]
This comment is out dated and misleading

Arms are about TAIT and RPIT, as the variants clearly show.

2 years agoci: include config_proc_macro crate in ci (#5389)
Tom Milligan [Tue, 21 Jun 2022 15:23:13 +0000 (16:23 +0100)]
ci: include config_proc_macro crate in ci (#5389)

* config_proc_macro: fix failing doctests

* ci: include config_proc_macro crate in ci

* [review] working native windows ci

* [fix] add --locked file for ci

* [fix] quoting of cmd variables

2 years agoAuto merge of #98335 - JohnTitor:rollup-j2zudxv, r=JohnTitor
bors [Tue, 21 Jun 2022 13:41:37 +0000 (13:41 +0000)]
Auto merge of #98335 - JohnTitor:rollup-j2zudxv, r=JohnTitor

Rollup of 11 pull requests

Successful merges:

 - #94033 (Improve docs for `is_running` to explain use case)
 - #97269 (adjust transmute const stabilization version)
 - #97805 (Add proper tracing spans to rustc_trait_selection::traits::error_reporting)
 - #98022 (Fix erroneous span for borrowck error)
 - #98124 (Improve loading of crates.js and sidebar-items.js)
 - #98278 (Some token stream cleanups)
 - #98306 (`try_fold_unevaluated` for infallible folders)
 - #98313 (Remove lies in comments.)
 - #98323 (:arrow_up: rust-analyzer)
 - #98329 (Avoid an ICE and instead let the compiler report a useful error)
 - #98330 (update ioslice docs to use shared slices)

Failed merges:

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

2 years agoMove some tests to more reasonable directories
Caio [Tue, 21 Jun 2022 12:33:14 +0000 (09:33 -0300)]
Move some tests to more reasonable directories

2 years agoRemove `#[doc(hidden)]` logic from `unused_attributes` lint
León Orell Valerian Liehr [Tue, 21 Jun 2022 11:42:34 +0000 (13:42 +0200)]
Remove `#[doc(hidden)]` logic from `unused_attributes` lint

2 years agoRollup merge of #98330 - conradludgate:io-slice-mut-docs, r=Dylan-DPC
Yuki Okushi [Tue, 21 Jun 2022 11:08:17 +0000 (20:08 +0900)]
Rollup merge of #98330 - conradludgate:io-slice-mut-docs, r=Dylan-DPC

update ioslice docs to use shared slices

I noticed that IoSlice docs were taking unnecessary mut slices, when they only accept shared slices

2 years agoRollup merge of #98329 - oli-obk:fast_path_ice, r=cjgillot
Yuki Okushi [Tue, 21 Jun 2022 11:08:16 +0000 (20:08 +0900)]
Rollup merge of #98329 - oli-obk:fast_path_ice, r=cjgillot

Avoid an ICE and instead let the compiler report a useful error

Fixes #98299

2 years agoRollup merge of #98323 - lnicola:rust-analyzer-2022-06-21, r=lnicola
Yuki Okushi [Tue, 21 Jun 2022 11:08:15 +0000 (20:08 +0900)]
Rollup merge of #98323 - lnicola:rust-analyzer-2022-06-21, r=lnicola

:arrow_up: rust-analyzer

r? ``@ghost``

2 years agoRollup merge of #98313 - m-ou-se:fix-comments, r=joshtriplett
Yuki Okushi [Tue, 21 Jun 2022 11:08:14 +0000 (20:08 +0900)]
Rollup merge of #98313 - m-ou-se:fix-comments, r=joshtriplett

Remove lies in comments.

> does not have a const constructor

> pub const fn new() -> Self

🤔

2 years agoRollup merge of #98306 - eggyal:add-unevaluated-to-blanket-fallibletypefolder, r...
Yuki Okushi [Tue, 21 Jun 2022 11:08:13 +0000 (20:08 +0900)]
Rollup merge of #98306 - eggyal:add-unevaluated-to-blanket-fallibletypefolder, r=nnethercote

`try_fold_unevaluated` for infallible folders

#97447 added folding of unevaluated constants, but did not include an override of the default (fallible) operation in the blanket impl of `FallibleTypeFolder` for infallible folders.  Here we provide that missing override.

r? ```@nnethercote```

2 years agoRollup merge of #98278 - nnethercote:some-token-stream-cleanups, r=petrochenkov
Yuki Okushi [Tue, 21 Jun 2022 11:08:12 +0000 (20:08 +0900)]
Rollup merge of #98278 - nnethercote:some-token-stream-cleanups, r=petrochenkov

Some token stream cleanups

Best reviewed one commit at a time.

r? ```@petrochenkov```

2 years agoRollup merge of #98124 - jsha:defer-crates, r=GuillaumeGomez
Yuki Okushi [Tue, 21 Jun 2022 11:08:11 +0000 (20:08 +0900)]
Rollup merge of #98124 - jsha:defer-crates, r=GuillaumeGomez

Improve loading of crates.js and sidebar-items.js

Now that the "All Crates" dropdown is only rendered on the search results page,
there is no need to load crates.js on most pages. Load it only on crate pages.
Also, add the `defer` attribute so it does not block HTML parsing.

For sidebar-items.js, move the script tag to `<head>`. Since it already has the
defer attribute it won't block loading. The defer attribute does preserve
ordering between scripts, so instead of the callback on load, it can set a
global variable on load, which is slightly simpler. Also, since it is required
to finish rendering the page, beginning its load earlier is better.

Remove generation and handling of sidebar-vars. Everything there can be computed
with information available in JS via other means.

Remove the extra_scripts fields of the `Page` template. They were only
used by source-script.js and source-files.js, which are now linked by the template
based on whether it is rendering a source page.

Remove the "other" wrapper in the sidebar. It was unnecessary.

r? ```@GuillaumeGomez```

Demo: https://rustdoc.crud.net/jsha/defer-crates/std/index.html

2 years agoRollup merge of #98022 - compiler-errors:erroneous-borrowck-span, r=oli-obk
Yuki Okushi [Tue, 21 Jun 2022 11:08:10 +0000 (20:08 +0900)]
Rollup merge of #98022 - compiler-errors:erroneous-borrowck-span, r=oli-obk

Fix erroneous span for borrowck error

I am not confident that this is the correct fix, but it does the job. Open to suggestions for a real fix instead.

Fixes #97997

The issue is that we pass a [dummy location](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_middle/mir/visit.rs.html#302) when type-checking the ["required consts"](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Body.html#structfield.required_consts) that are needed by the MIR body during borrowck. This means that when we fail to evaluate the constant, we use the span of `bb0[0]`, instead of the actual span of the constant.

There are quite a few other places that use `START_BLOCK.start_location()`, `Location::START`, etc. when calling for a random/unspecified `Location` value. This is because, unlike (for example) `Span`, we don't have a dummy/miscellaneous value to use instead. I would appreciate guidance (either in this PR, or a follow-up) on what needs to be done to clean this up in general.

2 years agoRollup merge of #97805 - coolreader18:trace-suggestions, r=oli-obk
Yuki Okushi [Tue, 21 Jun 2022 11:08:09 +0000 (20:08 +0900)]
Rollup merge of #97805 - coolreader18:trace-suggestions, r=oli-obk

Add proper tracing spans to rustc_trait_selection::traits::error_reporting

While I was trying to figure out #97704 I did some of this to make the logs more legible, so I figured I'd do the whole module and open a PR with it. afaict this is an ongoing process in the compiler from the log->tracing transition? but lmk if there was a reason for the more verbose forms of logging as they are.

Also, for some of the functions with only one log in them, I put the function name as a message for that log instead of `#[instrument]`-ing the whole function with a span? but maybe the latter would actually be preferable, I'm not actually sure.

2 years agoRollup merge of #97269 - RalfJung:transmute, r=m-ou-se
Yuki Okushi [Tue, 21 Jun 2022 11:08:08 +0000 (20:08 +0900)]
Rollup merge of #97269 - RalfJung:transmute, r=m-ou-se

adjust transmute const stabilization version

With 1.46, this became callable only in `const`/`static` items.

Only since 1.56 is this callable in `const fn`: [changelog](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1560-2021-10-21)

Also see [Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/transmute.20const.20fn.20stabilization).

2 years agoRollup merge of #94033 - joshtriplett:documentation-is-running-better-go-catch-it...
Yuki Okushi [Tue, 21 Jun 2022 11:08:07 +0000 (20:08 +0900)]
Rollup merge of #94033 - joshtriplett:documentation-is-running-better-go-catch-it, r=m-ou-se

Improve docs for `is_running` to explain use case

2 years agoAuto merge of #95576 - DrMeepster:box_erasure, r=oli-obk
bors [Tue, 21 Jun 2022 11:00:39 +0000 (11:00 +0000)]
Auto merge of #95576 - DrMeepster:box_erasure, r=oli-obk

Remove dereferencing of Box from codegen

Through #94043, #94414, #94873, and #95328, I've been fixing issues caused by Box being treated like a pointer when it is not a pointer. However, these PRs just introduced special cases for Box. This PR removes those special cases and instead transforms a deref of Box into a deref of the pointer it contains.

Hopefully, this is the end of the Box<T, A> ICEs.

2 years agoupdate cpu-usage-over-time-plot script
notseanray [Tue, 29 Mar 2022 18:05:58 +0000 (13:05 -0500)]
update cpu-usage-over-time-plot script

fix tidy checks and correct cpu-usage-over-time-plot script

2 years agoAdd a full regression test for #73727
Yuki Okushi [Tue, 21 Jun 2022 10:08:48 +0000 (19:08 +0900)]
Add a full regression test for #73727

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2 years agoUse futex based thread parker on Fuchsia.
Mara Bos [Fri, 6 May 2022 10:05:40 +0000 (12:05 +0200)]
Use futex based thread parker on Fuchsia.

2 years agoupdate ioslice docs to use shared slices
Conrad Ludgate [Tue, 21 Jun 2022 09:45:17 +0000 (11:45 +0200)]
update ioslice docs to use shared slices

2 years agoAvoid an ICE and instead let the compiler report a useful error
Oli Scherer [Tue, 21 Jun 2022 08:47:02 +0000 (08:47 +0000)]
Avoid an ICE and instead let the compiler report a useful error

2 years agoAuto merge of #97657 - Urgau:check-cfg-many-mut, r=oli-obk
bors [Tue, 21 Jun 2022 07:40:32 +0000 (07:40 +0000)]
Auto merge of #97657 - Urgau:check-cfg-many-mut, r=oli-obk

Use get_many_mut to reduce the cost of setting up check cfg values

This PR use the newly added [`get_many_mut`](https://github.com/rust-lang/rust/issues/97601) function in [`HashMap`](https://doc.rust-lang.org/nightly/std/collections/hash_map/struct.HashMap.html#method.get_many_mut) to reduce the cost of setting up the initial check cfg values.

cc `@petrochenkov`

2 years agoAdd `Iterator::next_chunk`
Ross MacArthur [Tue, 21 Jun 2022 06:57:02 +0000 (08:57 +0200)]
Add `Iterator::next_chunk`

2 years ago:arrow_up: rust-analyzer
Laurențiu Nicola [Tue, 21 Jun 2022 05:12:17 +0000 (08:12 +0300)]
:arrow_up: rust-analyzer

2 years agoProvide a segment res in more cases
Michael Goulet [Mon, 20 Jun 2022 01:21:01 +0000 (18:21 -0700)]
Provide a segment res in more cases

2 years agoGive name if anonymous region appears in impl signature
Michael Goulet [Tue, 21 Jun 2022 03:47:25 +0000 (03:47 +0000)]
Give name if anonymous region appears in impl signature

2 years agoAuto merge of #98148 - c410-f3r:assert-compiler, r=oli-obk
bors [Tue, 21 Jun 2022 03:44:54 +0000 (03:44 +0000)]
Auto merge of #98148 - c410-f3r:assert-compiler, r=oli-obk

[RFC 2011] Expand expressions where possible

Tracking issue: https://github.com/rust-lang/rust/issues/44838
Fourth step of https://github.com/rust-lang/rust/pull/96496

Extends https://github.com/rust-lang/rust/pull/97665 considering expressions that are good candidates for expansion.

r? `@oli-obk`

2 years agoAuto merge of #98307 - matthiaskrgr:rollup-rb3huha, r=matthiaskrgr
bors [Mon, 20 Jun 2022 22:34:50 +0000 (22:34 +0000)]
Auto merge of #98307 - matthiaskrgr:rollup-rb3huha, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #98235 (Drop magic value 3 from code)
 - #98267 (Don't omit comma when suggesting wildcard arm after macro expr)
 - #98276 (Mention formatting macros when encountering `ArgumentV1` method in const)
 - #98296 (Add a link to the unstable book page on Generator doc comment)

Failed merges:

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

2 years agorustdoc: optimize loading of source sidebar
Jacob Hoffman-Andrews [Mon, 20 Jun 2022 19:41:11 +0000 (12:41 -0700)]
rustdoc: optimize loading of source sidebar

The source sidebar has a setting to remember whether it should be open or
closed. Previously, this setting was handled in source-script.js, which
is loaded with `defer`, meaning it is often run after the document is rendered.
Since CSS renders the source sidebar as closed by default, changing this
after the initial render results in a relayout.

Instead, handle the setting in storage.js, which is the first script to load
and is the only script that blocks render. This avoids a relayout and means
navigating between files with the sidebar open is faster.

2 years agoFix panic by checking if `CStore` has the crate data we want before actually querying it
Guillaume Gomez [Mon, 20 Jun 2022 21:31:40 +0000 (23:31 +0200)]
Fix panic by checking if `CStore` has the crate data we want before actually querying it

2 years agoRemove lies in comments.
Mara Bos [Mon, 20 Jun 2022 20:59:48 +0000 (22:59 +0200)]
Remove lies in comments.

2 years agoImprove docs for `is_running` to explain use case
Josh Triplett [Tue, 15 Feb 2022 22:51:24 +0000 (14:51 -0800)]
Improve docs for `is_running` to explain use case

2 years agoIntegrate `generate_macro_def_id_path` into `href_with_root_path`
Guillaume Gomez [Mon, 20 Jun 2022 20:32:49 +0000 (22:32 +0200)]
Integrate `generate_macro_def_id_path` into `href_with_root_path`

2 years agoAdd test for macro support in "jump to def" feature
Guillaume Gomez [Fri, 26 Nov 2021 20:20:45 +0000 (21:20 +0100)]
Add test for macro support in "jump to def" feature

2 years agoImprove code readability and documentation
Guillaume Gomez [Sat, 18 Jun 2022 13:50:37 +0000 (15:50 +0200)]
Improve code readability and documentation

2 years agoRollup merge of #98296 - JohnTitor:generator-unstable-book-link, r=Dylan-DPC
Matthias Krüger [Mon, 20 Jun 2022 18:13:12 +0000 (20:13 +0200)]
Rollup merge of #98296 - JohnTitor:generator-unstable-book-link, r=Dylan-DPC

Add a link to the unstable book page on Generator doc comment

This makes it easier to jump into the Generator section on the unstable book.

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2 years agoRollup merge of #98276 - compiler-errors:const-format-macro, r=oli-obk
Matthias Krüger [Mon, 20 Jun 2022 18:13:11 +0000 (20:13 +0200)]
Rollup merge of #98276 - compiler-errors:const-format-macro, r=oli-obk

Mention formatting macros when encountering `ArgumentV1` method in const

Also open to just closing this if it's overkill. There are a lot of other distracting error messages around, so maybe it's not worth fixing just this one.

Fixes #93665

2 years agoRollup merge of #98267 - compiler-errors:suggest-wildcard-arm, r=oli-obk
Matthias Krüger [Mon, 20 Jun 2022 18:13:10 +0000 (20:13 +0200)]
Rollup merge of #98267 - compiler-errors:suggest-wildcard-arm, r=oli-obk

Don't omit comma when suggesting wildcard arm after macro expr

* Also adds `Span::eq_ctxt` to consolidate the various usages of `span.ctxt() == other.ctxt()`
* Also fixes an unhygenic usage of spans which caused the suggestion to render weirdly when we had one arm match in a macro
* Also always suggests a comma (i.e. even after a block) if we're rendering a wildcard arm in a single-line match (looks prettier :rose:)

Fixes #94866

2 years agoRollup merge of #98235 - liuw:mir-gen-drop-magic-value, r=davidtwco
Matthias Krüger [Mon, 20 Jun 2022 18:13:09 +0000 (20:13 +0200)]
Rollup merge of #98235 - liuw:mir-gen-drop-magic-value, r=davidtwco

Drop magic value 3 from code

Magic value 3 is used to create state for a yield point. It is in fact
the number of reserved variants.

Lift RESERVED_VARIANTS out to module scope and use it instead.

2 years agoImprove loading of crates.js and sidebar-items.js
Jacob Hoffman-Andrews [Wed, 15 Jun 2022 06:25:51 +0000 (23:25 -0700)]
Improve loading of crates.js and sidebar-items.js

Now that the "All Crates" dropdown is only rendered on the search results page,
there is no need to load crates.js on most pages. Load it only on crate pages.
Also, add the `defer` attribute so it does not block page rendering.

For sidebar-items.js, move the script tag to `<head>`. Since it already has the
defer attribute it won't block loading. The defer attribute does preserve
ordering between scripts, so instead of the callback on load, it can set a
global variable on load, which is slightly simpler. Also, since it is required
to finish rendering the page, beginning its load earlier is better.

Remove generation and handling of sidebar-vars. Everything there can be computed
with information available in JS via other means.

Remove the "other" wrapper in the sidebar. It was unnecessary.

Remove excess script fields

2 years agoAuto merge of #93765 - zhangyunhao116:heapsort, r=m-ou-se
bors [Mon, 20 Jun 2022 18:09:30 +0000 (18:09 +0000)]
Auto merge of #93765 - zhangyunhao116:heapsort, r=m-ou-se

Optimize heapsort

The new implementation is about 10% faster than the previous one(sorting random 1000 items).

2 years ago`try_fold_unevaluated` for infallible folders
Alan Egerton [Mon, 20 Jun 2022 18:03:37 +0000 (19:03 +0100)]
`try_fold_unevaluated` for infallible folders

#97447 added folding of unevaluated constants, but did not include an override of the default (fallible) operation in the blanket impl of `FallibleTypeFolder` for infallible folders.  Here we provide that missing override.

r? @nnethercote

2 years agodon't alloc error string if no error emitted
klensy [Mon, 20 Jun 2022 17:42:58 +0000 (20:42 +0300)]
don't alloc error string if no error emitted

2 years agoRename ContextInfo into HrefContext
Guillaume Gomez [Sat, 18 Jun 2022 13:32:26 +0000 (15:32 +0200)]
Rename ContextInfo into HrefContext