]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoclippy: Update full path to `CString`
Vadim Petrochenkov [Fri, 15 Apr 2022 13:52:58 +0000 (16:52 +0300)]
clippy: Update full path to `CString`

2 years agoAdd codegen for global_asm! sym operands
Amanieu d'Antras [Tue, 1 Mar 2022 00:53:25 +0000 (00:53 +0000)]
Add codegen for global_asm! sym operands

2 years agoAuto merge of #95841 - ChrisDenton:pipe-server, r=m-ou-se
bors [Fri, 15 Apr 2022 13:19:25 +0000 (13:19 +0000)]
Auto merge of #95841 - ChrisDenton:pipe-server, r=m-ou-se

Windows: Use a pipe relay for chaining pipes

Fixes #95759

This fixes the issue by chaining pipes synchronously and manually pumping messages between them. It's not ideal but it has the advantage of not costing anything if pipes are not chained ("don't pay for what you don't use") and it also avoids breaking existing code that rely on our end of the pipe being asynchronous (which includes rustc's own testing framework).

Libraries can avoid needing this by using their own pipes to chain commands.

2 years agochore: formatting
Keita Nonaka [Fri, 15 Apr 2022 08:30:05 +0000 (01:30 -0700)]
chore: formatting

2 years agotest: add try_insert() test cases for BTreeSet
Keita Nonaka [Fri, 15 Apr 2022 08:12:00 +0000 (01:12 -0700)]
test: add try_insert() test cases for BTreeSet

2 years agotest: add get_key_value() test cases for BTreeSet
Keita Nonaka [Fri, 15 Apr 2022 07:04:03 +0000 (00:04 -0700)]
test: add get_key_value() test cases for BTreeSet

2 years agouse `format-args-capture` and remove unnecessary nested block
Takayuki Maeda [Fri, 15 Apr 2022 06:56:32 +0000 (15:56 +0900)]
use `format-args-capture` and remove unnecessary nested block

2 years agotest: add pop_first() pop_last() test cases for BTreeSet
Keita Nonaka [Fri, 15 Apr 2022 06:40:05 +0000 (23:40 -0700)]
test: add pop_first() pop_last() test cases for BTreeSet

2 years agomake unaligned_reference warning visible in future compat report
Ralf Jung [Fri, 15 Apr 2022 01:18:19 +0000 (21:18 -0400)]
make unaligned_reference warning visible in future compat report

2 years agomake unaligned_references lint deny-by-default
Ralf Jung [Sun, 27 Mar 2022 16:42:19 +0000 (12:42 -0400)]
make unaligned_references lint deny-by-default

2 years agoclarify doc(cfg) wording
Andy Russell [Thu, 14 Apr 2022 23:03:56 +0000 (19:03 -0400)]
clarify doc(cfg) wording

The current "This is supported" wording implies that it's possible to
still use the item on other configurations, but in an unsupported way.
Changing this to "Available" removes this ambiguity.

2 years agoDon't build the library and standard library before documenting them
Joshua Nelson [Sun, 5 Sep 2021 20:07:57 +0000 (20:07 +0000)]
Don't build the library and standard library before documenting them

Rustdoc doesn't require the build artifacts to generate the docs, and
especially in the case of rustc, it greatly increases the time needed to
run the build.

- Statically ensure that only the top_stage of a tool is documented

If another part of rustbuild tried to document a different stage, it
would run into errors because `check::Rustc` unconditionally uses the
top stage.

- Try building rustc instead of checking to avoid duplicate artifacts

Tries to workaround the following error:
```
error[E0464]: multiple matching crates for `rustc_ast`
  --> src/librustdoc/lib.rs:40:1
   |
40 | extern crate rustc_ast;
   | ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: candidates:
           crate `rustc_ast`: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_ast-6d7c193782263d89.rlib
           crate `rustc_ast`: /checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_ast-e5d09eda5beb759c.rmeta
```

2 years agodocs: Update tests chapter for Termination stabilization
Eric Huss [Thu, 14 Apr 2022 23:42:49 +0000 (16:42 -0700)]
docs: Update tests chapter for Termination stabilization

2 years agoseparate flock implementations into separate modules
Andy Russell [Thu, 14 Apr 2022 22:29:21 +0000 (18:29 -0400)]
separate flock implementations into separate modules

2 years agoUpdate issue-92893.stderr
ouz-a [Thu, 14 Apr 2022 20:42:15 +0000 (23:42 +0300)]
Update issue-92893.stderr

2 years agoupdate: actions/checkout@v2 to actions/checkout@v3
Keita Nonaka [Thu, 14 Apr 2022 05:37:41 +0000 (22:37 -0700)]
update: actions/checkout@v2 to actions/checkout@v3

update: actions/checkout@v2 to actions/checkout@v3 for all yaml files

Revert "update: actions/checkout@v2 to actions/checkout@v3 for all yaml files"

This reverts commit 7445e582b900f0f56f5f2bd9036aacab97ef28e9.

change GitHub Actions version v2 to v3

change GitHub Actions

2 years agohandle arrays and slices uniformly in valtree creation
b-naber [Thu, 14 Apr 2022 19:56:27 +0000 (21:56 +0200)]
handle arrays and slices uniformly in valtree creation

2 years agolibrary: Remove definitions and reexports of `strlen` from libstd
Vadim Petrochenkov [Thu, 14 Apr 2022 11:38:39 +0000 (14:38 +0300)]
library: Remove definitions and reexports of `strlen` from libstd

2 years agoFix targets not supporting `target_has_atomic = "ptr"`
Vadim Petrochenkov [Wed, 13 Apr 2022 13:35:40 +0000 (16:35 +0300)]
Fix targets not supporting `target_has_atomic = "ptr"`

2 years agolibrary: Use type aliases to make `CStr(ing)` in libcore/liballoc unstable
Vadim Petrochenkov [Wed, 6 Apr 2022 14:04:18 +0000 (17:04 +0300)]
library: Use type aliases to make `CStr(ing)` in libcore/liballoc unstable

2 years agolibrary: Move `CStr` to libcore, and `CString` to liballoc
Vadim Petrochenkov [Wed, 16 Feb 2022 11:23:37 +0000 (19:23 +0800)]
library: Move `CStr` to libcore, and `CString` to liballoc

2 years agoUpdate *.natvis files (CDB?) files to take into account `Unique<T>` changes
Eduardo Sánchez Muñoz [Thu, 14 Apr 2022 12:11:11 +0000 (14:11 +0200)]
Update *.natvis files (CDB?) files to take into account `Unique<T>` changes

2 years agoFix debugger tests
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 18:57:31 +0000 (20:57 +0200)]
Fix debugger tests

2 years agoUpdate inline-into-box-place test output
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 17:30:43 +0000 (19:30 +0200)]
Update inline-into-box-place test output

2 years agoUpdate output of cycle-cache-err-60010 test
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 17:17:17 +0000 (19:17 +0200)]
Update output of cycle-cache-err-60010 test

2 years ago`Unique<T>` is now considered FFI-safe
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 17:15:34 +0000 (19:15 +0200)]
`Unique<T>` is now considered FFI-safe

2 years agoAdd additional `extract_field` / `project_field` to take into account extra level...
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 16:19:19 +0000 (18:19 +0200)]
Add additional `extract_field` / `project_field` to take into account extra level of struct nesting.

2 years agoImplement `core::ptr::Unique` on top of `NonNull`
Eduardo Sánchez Muñoz [Wed, 13 Apr 2022 13:50:23 +0000 (15:50 +0200)]
Implement `core::ptr::Unique` on top of `NonNull`

Removes the use `rustc_layout_scalar_valid_range_start` and some `unsafe` blocks.

2 years agoAuto merge of #95315 - compiler-errors:pointee-fix, r=pnkfelix
bors [Thu, 14 Apr 2022 14:37:34 +0000 (14:37 +0000)]
Auto merge of #95315 - compiler-errors:pointee-fix, r=pnkfelix

when checking pointee metadata, canonicalize the `Sized` check

Use `infcx.predicate_must_hold_modulo_regions` with a `Sized` obligation instead of just calling `ty.is_sized`, because the latter does not canonicalize region and type vars (and in the test case I added in this PR, there's a region var in the `ParamEnv`).

Fixes #95311

2 years agoReimplement lowering of sym operands for asm! so that it also works with global_asm!
Amanieu d'Antras [Tue, 1 Mar 2022 00:50:56 +0000 (00:50 +0000)]
Reimplement lowering of sym operands for asm! so that it also works with global_asm!

2 years agoRemove some now-dead code that was only relevant before deaggregation.
Oli Scherer [Thu, 14 Apr 2022 13:31:21 +0000 (13:31 +0000)]
Remove some now-dead code that was only relevant before deaggregation.

The code was broken anyway, if the deaggregator is disabled, it would have ICE on any non-enum Adt

2 years ago:arrow_up: rust-analyzer
Laurențiu Nicola [Thu, 14 Apr 2022 12:42:13 +0000 (15:42 +0300)]
:arrow_up: rust-analyzer

2 years agorefactor: change to use peekable
rainy-me [Thu, 14 Apr 2022 12:18:27 +0000 (21:18 +0900)]
refactor: change to use peekable

2 years agoAuto merge of #96031 - ehuss:update-cargo, r=ehuss
bors [Thu, 14 Apr 2022 11:04:26 +0000 (11:04 +0000)]
Auto merge of #96031 - ehuss:update-cargo, r=ehuss

Update cargo

11 commits in e2e2dddebe66dfc1403a312653557e332445308b..dba5baf4345858c591517b24801902a062c399f8
2022-04-05 17:04:53 +0000 to 2022-04-13 21:58:27 +0000
- Part 6 of RFC2906 - Switch the inheritance source from `workspace` to… (rust-lang/cargo#10564)
- Part 5 of RFC2906 - Add support for inheriting `rust-version` (rust-lang/cargo#10563)
- Add support for rustc --check-cfg well known names and values (rust-lang/cargo#10486)
- Reserve filename `Cargo.toml.orig` in `cargo package` (rust-lang/cargo#10551)
- Retry command invocation with argfile (rust-lang/cargo#10546)
- Add a progress indicator for `cargo clean` (rust-lang/cargo#10236)
- Ensure host units don't depend on Docscrape units, fixes rust-lang/cargo#10545 (rust-lang/cargo#10549)
- Fix docs: Bindeps env vars are passed to build script at runtime (rust-lang/cargo#10550)
- Part 4 of RFC2906 - Add support for inheriting `readme` (rust-lang/cargo#10548)
- Part 3 of RFC2906 - Add support for inheriting `license-path`, and `depednency.path` (rust-lang/cargo#10538)
- Bump to 0.63.0, update changelog (rust-lang/cargo#10544)

2 years agoremove redundant function param in check_for_self_assign_helper()
Matthias Krüger [Wed, 13 Apr 2022 21:07:20 +0000 (23:07 +0200)]
remove redundant function param in check_for_self_assign_helper()

2 years agoremove reudndant function param in check_matcher_core()
Matthias Krüger [Wed, 13 Apr 2022 21:03:11 +0000 (23:03 +0200)]
remove reudndant function param in check_matcher_core()

2 years agoremove function param that is only used in recursive of fn inner()
Matthias Krüger [Wed, 13 Apr 2022 20:59:45 +0000 (22:59 +0200)]
remove function param that is only used in recursive of fn inner()

2 years agoUse u32 instead of i32 for futexes.
Mara Bos [Thu, 14 Apr 2022 07:51:25 +0000 (09:51 +0200)]
Use u32 instead of i32 for futexes.

2 years agoRemove trailing whitespace
Boyd Kane [Thu, 14 Apr 2022 09:19:49 +0000 (11:19 +0200)]
Remove trailing whitespace

Co-authored-by: Mara Bos <m-ou.se@m-ou.se>
2 years agodocs: add link from zip to unzip
Boyd Kane [Thu, 14 Apr 2022 07:51:47 +0000 (09:51 +0200)]
docs: add link from zip to unzip

The docs for `Iterator::unzip` explain that it is kind of an inverse operation to `Iterator::zip` and guide the reader to the `zip` docs, but the `zip` docs don't let the user know that they can undo the `zip` operation with `unzip`. This change modifies the docs to help the user find `unzip`.

2 years agoAuto merge of #95928 - nnethercote:rm-TokenTree-Clone, r=petrochenkov
bors [Thu, 14 Apr 2022 06:36:04 +0000 (06:36 +0000)]
Auto merge of #95928 - nnethercote:rm-TokenTree-Clone, r=petrochenkov

Remove `<mbe::TokenTree as Clone>`

`mbe::TokenTree` doesn't really need to implement `Clone`, and getting rid of that impl leads to some speed-ups.

r? `@petrochenkov`

2 years agotest: add remove() test cases for BTreeSet
Keita Nonaka [Thu, 14 Apr 2022 05:19:08 +0000 (22:19 -0700)]
test: add remove() test cases for BTreeSet

2 years agotest: add is_superset test cases for BTreeSet
Keita Nonaka [Thu, 14 Apr 2022 05:09:03 +0000 (22:09 -0700)]
test: add is_superset test cases for BTreeSet

2 years agoUpdate cargo
Eric Huss [Thu, 14 Apr 2022 01:02:32 +0000 (18:02 -0700)]
Update cargo

2 years agoAuto merge of #95981 - martingms:invert-line-offset-parsing, r=nnethercote
bors [Wed, 13 Apr 2022 23:18:33 +0000 (23:18 +0000)]
Auto merge of #95981 - martingms:invert-line-offset-parsing, r=nnethercote

Optimize `<SourceFile as Decodable>::decode`

It showed up as a hot-ish function in a callgrind profile of the `await-call-tree` benchmark crate.

Provides some moderate speedups to compilation of some of the smaller benchmarks:

#### Primary benchmarks

Benchmark | Profile | Scenario | % Change | Significance Factor?
-- | -- | -- | -- | --
helloworld | check | full | -1.81% | 9.03x
helloworld | check | incr-unchanged | -1.80% | 8.99x
helloworld | check | incr-full | -1.59% | 7.97x
helloworld | check | incr-patched: println | -1.57% | 7.86x

#### Secondary benchmarks
<div class="category-title"></div>

Benchmark | Profile | Scenario | % Change | Significance Factor?
-- | -- | -- | -- | --
unify-linearly | check | incr-unchanged | -1.55% | 7.74x
unify-linearly | check | incr-patched: dummy fn | -1.42% | 7.08x
await-call-tree | check | incr-unchanged | -1.27% | 6.35x
await-call-tree | debug | incr-unchanged | -1.19% | 5.95x
await-call-tree | opt | incr-unchanged | -1.19% | 5.94x
issue-46449 | check | incr-unchanged | -1.08% | 5.39x
issue-46449 | check | incr-patched: u8 3072 | -1.00% | 5.00x
structopt-0.3.26 | check | incr-unchanged | -0.94% | 4.72x
structopt-0.3.26 | opt | incr-unchanged | -0.92% | 4.60x
structopt-0.3.26 | debug | incr-unchanged | -0.92% | 4.59x
issue-46449 | check | full | -0.89% | 4.46x
structopt-0.3.26 | check | full | -0.83% | 4.17x
structopt-0.3.26 | debug | full | -0.78% | 3.88x
structopt-0.3.26 | opt | full | -0.76% | 3.81x
unify-linearly | check | full | -0.75% | 3.74x
projection-caching | check | incr-unchanged | -0.74% | 3.70x
issue-46449 | check | incr-patched: u32 3072 | -0.70% | 3.50x
issue-46449 | check | incr-patched: empty 3072 | -0.68% | 3.41x
structopt-0.3.26 | check | incr-full | -0.68% | 3.40x
wf-projection-stress-65510 | check | incr-unchanged | -0.68% | 3.39x
issue-46449 | check | incr-patched: static str 6144 | -0.67% | 3.37x
wf-projection-stress-65510 | debug | incr-unchanged | -0.67% | 3.33x
wf-projection-stress-65510 | opt | incr-unchanged | -0.66% | 3.31x
issue-46449 | check | incr-patched: io error 6144 | -0.66% | 3.29x
unify-linearly | check | incr-full | -0.65% | 3.26x
issue-46449 | check | incr-full | -0.65% | 3.25x
structopt-0.3.26 | debug | incr-full | -0.64% | 3.18x
structopt-0.3.26 | opt | incr-full | -0.63% | 3.17x
issue-46449 | debug | incr-unchanged | -0.61% | 3.06x
issue-46449 | opt | incr-unchanged | -0.61% | 3.03x
await-call-tree | check | full | -0.60% | 2.99x
issue-88862 | check | incr-unchanged | -0.58% | 2.91x
deep-vector | debug | full | 0.57% | 2.83x
await-call-tree | check | incr-full | -0.52% | 2.59x
tt-muncher | opt | full | -0.52% | 2.58x
issue-58319 | check | incr-unchanged | -0.50% | 2.52x
await-call-tree | debug | full | -0.50% | 2.49x
await-call-tree | opt | full | -0.49% | 2.45x
deep-vector | debug | incr-patched: println | 0.47% | 2.37x
await-call-tree | debug | incr-full | -0.45% | 2.26x
await-call-tree | opt | incr-full | -0.44% | 2.18x
issue-88862 | check | full | -0.41% | 2.06x
mockall-0.11.0 | check | incr-unchanged | -0.38% | 1.90x
regression-31157 | check | incr-unchanged | -0.37% | 1.86x
wf-projection-stress-65510 | opt | full | -0.36% | 1.80x
deunicode-1.3.1 | check | incr-unchanged | -0.35% | 1.76x
unify-linearly | debug | incr-patched: dummy fn | -0.35% | 1.74x
mockall-0.11.0 | check | full | -0.35% | 1.73x
unify-linearly | debug | incr-unchanged | -0.34% | 1.69x
deunicode-1.3.1 | check | full | -0.33% | 1.63x
token-stream-stress | check | full | -0.32% | 1.62x
token-stream-stress | check | incr-full | -0.32% | 1.59x
token-stream-stress | check | incr-unchanged | -0.32% | 1.59x
regression-31157 | check | incr-patched: println | -0.31% | 1.57x
wf-projection-stress-65510 | check | full | -0.31% | 1.54x
deeply-nested-multi | check | incr-unchanged | -0.31% | 1.53x
mockall-0.11.0 | opt | incr-unchanged | -0.30% | 1.50x

r? `@nnethercote`

2 years ago`mbe::TokenTree`: remove `Lrc` around `Delimited` and `SequenceRepetition`.
Nicholas Nethercote [Mon, 11 Apr 2022 06:27:19 +0000 (16:27 +1000)]
`mbe::TokenTree`: remove `Lrc` around `Delimited` and `SequenceRepetition`.

2 years agoIntroduce `TtHandle` and use it in `TokenSet`.
Nicholas Nethercote [Mon, 11 Apr 2022 00:55:49 +0000 (10:55 +1000)]
Introduce `TtHandle` and use it in `TokenSet`.

This removes the last use of `<mbe::TokenTree as Clone>`. It also
removes two trivial methods on `Delimited`.

2 years agoAuto merge of #95968 - davidtwco:translation-lazy-fallback, r=oli-obk
bors [Wed, 13 Apr 2022 21:04:19 +0000 (21:04 +0000)]
Auto merge of #95968 - davidtwco:translation-lazy-fallback, r=oli-obk

errors: lazily load fallback fluent bundle

Addresses (hopefully) https://github.com/rust-lang/rust/pull/95667#issuecomment-1094794087.

Loading the fallback bundle in compilation sessions that won't go on to emit any errors unnecessarily degrades compile time performance, so lazily create the Fluent bundle when it is first required.

r? `@ghost` (just for perf initially)

2 years agocouple of clippy::complexity fixes
Matthias Krüger [Wed, 13 Apr 2022 20:51:34 +0000 (22:51 +0200)]
couple of clippy::complexity fixes

2 years agoAdd codegen tests for additional cases where noop iterators get optimized away
The 8472 [Tue, 5 Apr 2022 18:58:36 +0000 (20:58 +0200)]
Add codegen tests for additional cases where noop iterators get optimized away

Optimization have improved over time and now LLVM manages to optimize more
in-place-collect noop-iterators to O(1) functions. This updates the codegen test to match.

2 years agocouple of clippy::perf fixes
Matthias Krüger [Wed, 13 Apr 2022 20:18:28 +0000 (22:18 +0200)]
couple of clippy::perf fixes

2 years agoAuto merge of #95958 - jhpratt:bump-stdarch, r=Dylan-DPC
bors [Wed, 13 Apr 2022 18:44:35 +0000 (18:44 +0000)]
Auto merge of #95958 - jhpratt:bump-stdarch, r=Dylan-DPC

Update stdarch

library/stdarch bcbe0106...d215afe9 (7):
  - Add the rdm target feature to the sqrdmlsh intrinsic. (rust-lang/stdarch#1285)
  - Remove use of `#[rustc_deprecated]`
  - Remove feature gates for stabilized features
  - Change remaining _undefined_ functions to zero-init
  - Use SPDX license format and update packed_simd crate link (rust-lang/stdarch#1297)
  - Fix broken links (rust-lang/stdarch#1294)
  - Import the asm macro in std_detect (rust-lang/stdarch#1290)

2 years agoimprove diagnostics for unterminated nested block comment
rainy-me [Wed, 13 Apr 2022 18:22:02 +0000 (03:22 +0900)]
improve diagnostics for unterminated nested block comment

2 years agoAuto merge of #96015 - Dylan-DPC:rollup-vhdprid, r=Dylan-DPC
bors [Wed, 13 Apr 2022 16:04:06 +0000 (16:04 +0000)]
Auto merge of #96015 - Dylan-DPC:rollup-vhdprid, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #93217 (Improve Rustdoc UI for scraped examples with multiline arguments, fix overflow in line numbers)
 - #95885 (Improve error message in case of missing checksum)
 - #95962 (Document that DirEntry holds the directory open)
 - #95991 (fix: wrong trait import suggestion for T:)
 - #96005 (Add missing article to fix "few" to "a few".)
 - #96006 (Add a missing article)

Failed merges:

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

2 years agoRollup merge of #96006 - hkBst:patch-2, r=Dylan-DPC
Dylan DPC [Wed, 13 Apr 2022 15:35:37 +0000 (17:35 +0200)]
Rollup merge of #96006 - hkBst:patch-2, r=Dylan-DPC

Add a missing article

Add a missing article

2 years agoRollup merge of #96005 - hkBst:patch-1, r=Dylan-DPC
Dylan DPC [Wed, 13 Apr 2022 15:35:35 +0000 (17:35 +0200)]
Rollup merge of #96005 - hkBst:patch-1, r=Dylan-DPC

Add missing article to fix "few" to "a few".

Add missing article to fix "few" (not many) to "a few" (some).

2 years agoRollup merge of #95991 - PoorlyDefinedBehaviour:fix/issue_95898, r=fee1-dead
Dylan DPC [Wed, 13 Apr 2022 15:35:34 +0000 (17:35 +0200)]
Rollup merge of #95991 - PoorlyDefinedBehaviour:fix/issue_95898, r=fee1-dead

fix: wrong trait import suggestion for T:

The suggestion to bound `T` had an extra `:`.

```rust
fn foo<T:>(t: T) {
  t.clone();
}
```

```
error[E0599]: no method named `clone` found for type parameter `T` in the current scope
 --> src/lib.rs:2:7
  |
2 |     t.clone();
  |       ^^^^^ method not found in `T`
  |
  = help: items from traits can only be used if the type parameter is bounded by the trait
help: the following trait defines an item `clone`, perhaps you need to restrict type parameter `T` with it:
  |
1 | fn foo<T: Clone:>(t: T) {
  |        ~~~~~~~~
 ```

Fixes: #95898
2 years agoRollup merge of #95962 - sourcefrog:doc-direntry, r=Dylan-DPC
Dylan DPC [Wed, 13 Apr 2022 15:35:33 +0000 (17:35 +0200)]
Rollup merge of #95962 - sourcefrog:doc-direntry, r=Dylan-DPC

Document that DirEntry holds the directory open

I had a bug where holding onto DirEntry structs caused file descriptor exhaustion, and thought it would be good to document this.

2 years agoRollup merge of #95885 - gimbles:patch-1, r=Mark-Simulacrum
Dylan DPC [Wed, 13 Apr 2022 15:35:32 +0000 (17:35 +0200)]
Rollup merge of #95885 - gimbles:patch-1, r=Mark-Simulacrum

Improve error message in case of missing checksum

# Fixes
#94217

2 years agoRollup merge of #93217 - willcrichton:example-analyzer, r=GuillaumeGomez
Dylan DPC [Wed, 13 Apr 2022 15:35:32 +0000 (17:35 +0200)]
Rollup merge of #93217 - willcrichton:example-analyzer, r=GuillaumeGomez

Improve Rustdoc UI for scraped examples with multiline arguments, fix overflow in line numbers

This PR improves a few aspects of the scrape examples feature in Rustdoc.
* Only function names and not the full call expression are highlighted.
* For call-sites with multiline arguments, the minimized code viewer will scroll to the top of the call-site rather than the middle if the argument is larger than the viewer size, ensuring that the function name is visible.
* This fixes an issue where the line numbers column had a visible x-scroll bar.

r? `@GuillaumeGomez`

2 years agoRemove last vestiges of skippng ident span hashing
Aaron Hill [Wed, 13 Apr 2022 15:23:51 +0000 (11:23 -0400)]
Remove last vestiges of skippng ident span hashing

This removes a comment that no longer applies, and properly hashes
the full ident for path segments.

2 years agofix: wrong trait import suggestion for T:
Bruno Felipe Francisco [Wed, 13 Apr 2022 14:02:01 +0000 (11:02 -0300)]
fix: wrong trait import suggestion for T:

2 years agoAuto merge of #95727 - m-ou-se:futex-reentrantmutex, r=Amanieu
bors [Wed, 13 Apr 2022 13:42:19 +0000 (13:42 +0000)]
Auto merge of #95727 - m-ou-se:futex-reentrantmutex, r=Amanieu

Replace ReentrantMutex by a futex-based one on Linux.

Tracking issue: https://github.com/rust-lang/rust/issues/93740

r? `@Amanieu`

2 years agoAdd a missing article
Marijn Schouten [Wed, 13 Apr 2022 11:33:09 +0000 (13:33 +0200)]
Add a missing article

Add a missing article

2 years agoAuto merge of #95656 - cjgillot:no-id-hashing-mode, r=Aaron1011
bors [Wed, 13 Apr 2022 11:27:17 +0000 (11:27 +0000)]
Auto merge of #95656 - cjgillot:no-id-hashing-mode, r=Aaron1011

Remove NodeIdHashingMode.

r? `@ghost`

2 years agoAdd missing article to fix "few" to "a few".
Marijn Schouten [Wed, 13 Apr 2022 11:24:28 +0000 (13:24 +0200)]
Add missing article to fix "few" to "a few".

Add missing article to fix "few" (not many) to "a few" (some).

2 years agoConsider lifetimes when comparing types for equality in MIR validator
Jakob Degen [Wed, 13 Apr 2022 09:42:28 +0000 (05:42 -0400)]
Consider lifetimes when comparing types for equality in MIR validator

2 years agoImprove error message when there's no checksum
gimbles [Wed, 13 Apr 2022 08:24:22 +0000 (13:54 +0530)]
Improve error message when there's no checksum

2 years agoAuto merge of #94255 - b-naber:use-mir-constant-in-thir, r=oli-obk
bors [Wed, 13 Apr 2022 07:50:56 +0000 (07:50 +0000)]
Auto merge of #94255 - b-naber:use-mir-constant-in-thir, r=oli-obk

Use mir constant in thir instead of ty::Const

This is blocked on https://github.com/rust-lang/rust/pull/94059 (does include its changes, the first two commits in this PR correspond to those changes) and https://github.com/rust-lang/rust/pull/93800 being reinstated (which had to be reverted). Mainly opening since `@lcnr` offered to give some feedback and maybe also for a perf-run (if necessary).

This currently contains a lot of duplication since some of the logic of `ty::Const` had to be copied to `mir::ConstantKind`, but with the introduction of valtrees a lot of that functionality will disappear from `ty::Const`.

Only the last commit contains changes that need to be reviewed here. Did leave some `FIXME` comments regarding future implementation decisions and some things that might be incorrectly implemented.

r? `@oli-obk`

2 years agoUse .extend(..) instead of push()-ing in loop
Martin Gammelsæter [Wed, 13 Apr 2022 06:44:20 +0000 (08:44 +0200)]
Use .extend(..) instead of push()-ing in loop

A bit less readable but more compact, and maybe faster? We'll see.

2 years agoSpeed up Vec::clear().
Nicholas Nethercote [Wed, 13 Apr 2022 05:01:35 +0000 (15:01 +1000)]
Speed up Vec::clear().

Currently it just calls `truncate(0)`. `truncate()` is (a) not marked as
`#[inline]`, and (b) more general than needed for `clear()`.

This commit changes `clear()` to do the work itself. This modest change
was first proposed in rust-lang#74172, where the reviewer rejected it because
there was insufficient evidence that `Vec::clear()`'s performance
mattered enough to justify the change. Recent changes within rustc have
made `Vec::clear()` hot within `macro_parser.rs`, so the change is now
clearly worthwhile.

Although it doesn't show wins on CI perf runs, this seems to be because they
use PGO. But not all platforms currently use PGO. Also, local builds don't use
PGO, and `truncate` sometimes shows up in an over-represented fashion in local
profiles. So local profiling will be made easier by this change.

Note that this will also benefit `String::clear()`, because it just
calls `Vec::clear()`.

Finally, the commit removes the `vec-clear.rs` codegen test. It was
added in #52908. From before then until now, `Vec::clear()` just called
`Vec::truncate()` with a zero length. The body of Vec::truncate() has
changed a lot since then. Now that `Vec::clear()` is doing actual work
itself, and not just calling `Vec::truncate()`, it's not surprising that
its generated code includes a load and an icmp. I think it's reasonable
to remove this test.

2 years agoAuto merge of #95999 - Dylan-DPC:rollup-k2r3k11, r=Dylan-DPC
bors [Wed, 13 Apr 2022 05:36:26 +0000 (05:36 +0000)]
Auto merge of #95999 - Dylan-DPC:rollup-k2r3k11, r=Dylan-DPC

Rollup of 4 pull requests

Successful merges:

 - #95441 (Always use system `python3` on MacOS)
 - #95954 (Fix broken link in coverage tools docs)
 - #95984 (Fix spelling in docs for `can_not_overflow`)
 - #95989 (diagnostics: regression test for spurrious "help: store this in the heap")

Failed merges:

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

2 years agoMake `x test --stage 2 compiler/rustc_XXX` faster to run
Joshua Nelson [Wed, 13 Apr 2022 03:26:49 +0000 (22:26 -0500)]
Make `x test --stage 2 compiler/rustc_XXX` faster to run

Previously, bootstrap unconditionally rebuilt the stage 2 compiler,
even if it had previously built stage 1. This changes it to reuse stage 1 if possible.

2 years agoRollup merge of #95989 - rust-lang:notriddle/issue-82446, r=compiler-errors
Dylan DPC [Wed, 13 Apr 2022 03:54:13 +0000 (05:54 +0200)]
Rollup merge of #95989 - rust-lang:notriddle/issue-82446, r=compiler-errors

diagnostics: regression test for spurrious "help: store this in the heap"

Closes #82446

2 years agoRollup merge of #95984 - wcampbell0x2a:fix-spelling, r=thomcc
Dylan DPC [Wed, 13 Apr 2022 03:54:13 +0000 (05:54 +0200)]
Rollup merge of #95984 - wcampbell0x2a:fix-spelling, r=thomcc

Fix spelling in docs for `can_not_overflow`

Introduced in https://github.com/rust-lang/rust/pull/95399

2 years agoRollup merge of #95954 - AnthonyMikh:fix-broken-coverage-docs-screenshot-link, r...
Dylan DPC [Wed, 13 Apr 2022 03:54:12 +0000 (05:54 +0200)]
Rollup merge of #95954 - AnthonyMikh:fix-broken-coverage-docs-screenshot-link, r=Dylan-DPC

Fix broken link in coverage tools docs

During stabilization the link to example screenshot wad not updated, making rendered docs somewhat less useful. Move that screenshot from unstable book into rustc docs and make documentation point to that new place. Also remove `/img` in unstable book since there are no more any files there.

2 years agoRollup merge of #95441 - AlecGoncharow:issue-95204-fix, r=Mark-Simulacrum
Dylan DPC [Wed, 13 Apr 2022 03:54:11 +0000 (05:54 +0200)]
Rollup merge of #95441 - AlecGoncharow:issue-95204-fix, r=Mark-Simulacrum

Always use system `python3` on MacOS

This PR includes 2 changes:

1. Always use the system Python found at `/usr/bin/python3` on MacOS
2. Removes the hard requirement on having `python` in your system path if you didn't specify alternatives. The proposed change will instead attempt to find and use in order: `python` -> `python3` -> `python2`. This change isn't strictly necessary but without any change to this check, the original issue inspiring this change will still exist.

Fixes #95204
r? ```@jyn514```

2 years agoerrors: lazily load fallback fluent bundle
David Wood [Tue, 12 Apr 2022 08:34:40 +0000 (09:34 +0100)]
errors: lazily load fallback fluent bundle

Loading the fallback bundle in compilation sessions that won't go on to
emit any errors unnecessarily degrades compile time performance, so
lazily create the Fluent bundle when it is first required.

Signed-off-by: David Wood <david.wood@huawei.com>
2 years agoPass a slice instead of a `Vec` to `transcribe`.
Nicholas Nethercote [Sun, 10 Apr 2022 23:52:34 +0000 (09:52 +1000)]
Pass a slice instead of a `Vec` to `transcribe`.

It avoids some unnecessary allocations.

2 years agoAvoid use of `Lrc` in `mbe::Frame`.
Nicholas Nethercote [Fri, 8 Apr 2022 10:36:44 +0000 (20:36 +1000)]
Avoid use of `Lrc` in `mbe::Frame`.

This is a nice performance win on some crates.

2 years ago`SequenceRepetition` and `Delimited` don't need to be `Clone`.
Nicholas Nethercote [Fri, 8 Apr 2022 10:44:57 +0000 (20:44 +1000)]
`SequenceRepetition` and `Delimited` don't need to be `Clone`.

2 years agoAuto merge of #95990 - Dylan-DPC:rollup-r9bh9t7, r=Dylan-DPC
bors [Wed, 13 Apr 2022 01:15:20 +0000 (01:15 +0000)]
Auto merge of #95990 - Dylan-DPC:rollup-r9bh9t7, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #95316 (Rustdoc: Discriminate required and provided associated constants and types)
 - #95405 (Move name resolution logic to a dedicated file)
 - #95914 (Implement tuples using recursion)
 - #95918 (Delay a bug when we see SelfCtor in ref pattern)
 - #95970 (Fix suggestions in case of `T:` bounds)
 - #95973 (prevent opaque types from appearing in impl headers)
 - #95986 (Autolabel library PRs with T-libs)

Failed merges:

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

2 years agoFix `x test --doc --stage 0 library/std`
Joshua Nelson [Wed, 13 Apr 2022 01:11:10 +0000 (20:11 -0500)]
Fix `x test --doc --stage 0 library/std`

I managed to break this in https://github.com/rust-lang/rust/pull/95449.
I am not quite sure why this is the correct fix, but it doesn't break `doc --stage 0`
and is strictly closer to the previous behavior.

Previously, rustdoc would error with strange issues because of the mismatched sysroot:
```
error[E0460]: found possibly newer version of crate `std` which `rustc_span` depends on
  --> /home/jnelson/rust-lang/rust/compiler/rustc_lint_defs/src/lib.rs:14:5
   |
14 | use rustc_span::{sym, symbol::Ident, Span, Symbol};
   |     ^^^^^^^^^^
   |
   = note: perhaps that crate needs to be recompiled?
   = note: the following crate versions were found:
           crate `std`: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-ff9290e971253a38.rlib
           crate `std`: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-ff9290e971253a38.so
           crate `rustc_span`: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_span-ed11dce30c1766f9.rlib
```

2 years agoAuto merge of #95905 - vacuus:markdown-render, r=GuillaumeGomez
bors [Tue, 12 Apr 2022 22:56:06 +0000 (22:56 +0000)]
Auto merge of #95905 - vacuus:markdown-render, r=GuillaumeGomez

rustdoc: Reduce allocations in a `markdown` function

Not `html::markdown` this time, just `markdown`, haha.

2 years agorustc_metadata: Do not encode unnecessary module children
Vadim Petrochenkov [Sun, 10 Apr 2022 19:15:09 +0000 (22:15 +0300)]
rustc_metadata: Do not encode unnecessary module children

2 years agoRollup merge of #95986 - yaahc:libs-autolabel, r=Mark-Simulacrum
Dylan DPC [Tue, 12 Apr 2022 21:17:02 +0000 (23:17 +0200)]
Rollup merge of #95986 - yaahc:libs-autolabel, r=Mark-Simulacrum

Autolabel library PRs with T-libs

Continuation of https://github.com/rust-lang/highfive/pull/389

We're trying to improve the libs team review structure and part of that is defaulting PRs to the T-libs team to act as a mini-triage team for all the libs teams / project groups. Highfive doesn't do issue tagging so we will rely on triagebot to pre-triage for t-libs to post-triage :)

2 years agoRollup merge of #95973 - oli-obk:tait_ub3, r=compiler-errors
Dylan DPC [Tue, 12 Apr 2022 21:17:01 +0000 (23:17 +0200)]
Rollup merge of #95973 - oli-obk:tait_ub3, r=compiler-errors

prevent opaque types from appearing in impl headers

cc `@lqd`

opaque types are not distinguishable from their hidden type at the codegen stage. So we could either end up with cases where the hidden type doesn't implement the trait (which will thus ICE) or where the hidden type does implement the trait (so we'd be using its impl instead of the one written for the opaque type). This can even lead to unsound behaviour without unsafe code.

Fixes https://github.com/rust-lang/rust/issues/86411.
Fixes https://github.com/rust-lang/rust/issues/84660.

rebase of #87382 plus some diagnostic tweaks

2 years agoRollup merge of #95970 - WaffleLapkin:nicer_trait_suggestions, r=compiler-errors
Dylan DPC [Tue, 12 Apr 2022 21:17:00 +0000 (23:17 +0200)]
Rollup merge of #95970 - WaffleLapkin:nicer_trait_suggestions, r=compiler-errors

Fix suggestions in case of `T:` bounds

This PR fixes a corner case in `suggest_constraining_type_params` that was causing incorrect suggestions.

For the following functions:
```rust
fn a<T:>(t: T) { [t, t]; }
fn b<T>(t: T) where T: { [t, t]; }
```

We previously suggested the following:
```text
...
help: consider restricting type parameter `T`
  |
1 | fn a<T: Copy:>(t: T) { [t, t]; }
  |       ++++++
...
help: consider further restricting this bound
  |
2 | fn b<T>(t: T) where T: + Copy { [t, t]; }
  |                        ++++++
```

Note that neither `T: Copy:` not `where T: + Copy` is a correct bound.

With this commit the suggestions are correct:
```text
...
help: consider restricting type parameter `T`
  |
1 | fn a<T: Copy>(t: T) { [t, t]; }
  |         ++++
...
help: consider further restricting this bound
  |
2 | fn b<T>(t: T) where T: Copy { [t, t]; }
  |                        ++++
```

r? `@compiler-errors`

I've tried fixing #95898 here too, but got too confused with how `suggest_traits_to_import` works and what it does :sweat_smile:

2 years agoRollup merge of #95918 - compiler-errors:issue-95878, r=cjgillot
Dylan DPC [Tue, 12 Apr 2022 21:16:59 +0000 (23:16 +0200)]
Rollup merge of #95918 - compiler-errors:issue-95878, r=cjgillot

Delay a bug when we see SelfCtor in ref pattern

Fixes #95878

2 years agoRollup merge of #95914 - c410-f3r:meta-vars, r=petrochenkov
Dylan DPC [Tue, 12 Apr 2022 21:16:58 +0000 (23:16 +0200)]
Rollup merge of #95914 - c410-f3r:meta-vars, r=petrochenkov

Implement tuples using recursion

Because it is c00l3r™, requires less repetition and can be used as a reference for external people.

This change is non-essential and I am not sure about potential performance impacts so feel free to close this PR if desired.

r? `@petrochenkov`

2 years agoRollup merge of #95405 - cjgillot:probe, r=petrochenkov
Dylan DPC [Tue, 12 Apr 2022 21:16:56 +0000 (23:16 +0200)]
Rollup merge of #95405 - cjgillot:probe, r=petrochenkov

Move name resolution logic to a dedicated file

The code resolution logic from an Ident is scattered between several files.

The first commits creates `rustc_resolve::probe` module to hold the different mutually recursive functions together. Just a move, no code change.
The following commits attempt to make the logic a bit more readable.

The two fields `last_import_segment` and `unusable_binding` are replaced by function parameters.
In order to manage the fallout, `maybe_` variants of the function are added, dedicated to speculative resolution.

r? `@petrochenkov`

2 years agoRollup merge of #95316 - fmease:rustdoc-discr-req-prov-assoc-consts-tys, r=notriddle...
Dylan DPC [Tue, 12 Apr 2022 21:16:55 +0000 (23:16 +0200)]
Rollup merge of #95316 - fmease:rustdoc-discr-req-prov-assoc-consts-tys, r=notriddle,GuillaumeGomez

Rustdoc: Discriminate required and provided associated constants and types

Currently, rustdoc merely separates required and provided associated _functions_ (i.e. methods). This PR extends this to constants (fixes #94652) and types. This makes the documentation of all three kinds of associated items more alike and consistent.

As an aside, associated types may actually be provided / have a default when users enable the unstable feature `associated_type_defaults`.

| Before | After |
|---|---|
| ![image](https://user-images.githubusercontent.com/14913065/160631832-d5862d13-b395-4d86-b45c-3873ffd4cd4e.png) | ![image](https://user-images.githubusercontent.com/14913065/160631903-33909a03-b6ee-4d75-9cbc-d188f7f8602e.png) |
| ![image](https://user-images.githubusercontent.com/14913065/160632173-040d4139-76f4-4410-851b-d8c1cef014d2.png) | ![image](https://user-images.githubusercontent.com/14913065/160632233-6fd3fe73-cadc-4291-b104-59d2e45366a6.png) |

### `clean::types::ItemKind` modification

* `ItemKind::TypedefItem(.., true)` → `ItemKind::AssocTypeItem(..)`
* `ItemKind::TypedefItem(.., false)` → `ItemKind::TypedefItem(..)`

Further, I added `ItemKind::TyAssoc{Const,Type}Item`, the “required” variant of `ItemKind::Assoc{Const,Type}Item`, analogous to `ItemKind::TyMethodItem` with `ItemKind::MethodItem`. These new variants don't contain new information really, they are just the result of me getting rid of the `Option<_>` field in `AssocConstItem` and `AssocTypeItem`.

**Goal**: Make associated items more consistent.
Originally I thought modifying `ItemKind` was necessary to achieve the new functionality of this PR but in retrospect, it does not. If you don't like the changes to `ItemKind`, I think I _can_ get rid of them.

This change is the root cause of those tiny changes in a lot of different files.

 ### Concerns and Open Questions

* **breaking changes** to hyperlinks: Some heading IDs change:
  * `associated-const` (sic!) -> `{provided,required}-associated-consts`
  * `associated-types` -> `{provided,required}-associated-types`
* **verbosity** of the headings _{Required,Provided} Associated {Constants,Types}_
* For some files, I am not sure if the changes I made are correct. So please take extra care when reviewing `conversions.rs` (conversion to JSON), `cache.rs`/`fold_item`, `stripper.rs`/`fold_item`, `check_doc_test_visibility.rs`/`should_have_doc_example`, `collect_intra_doc_links.rs`/`from_assoc_item`
* JSON output: I still map `AssocTypeItem`s to `Typedef` etc. (FIXME)

2 years agoBless tests.
Camille GILLOT [Tue, 12 Apr 2022 20:44:19 +0000 (22:44 +0200)]
Bless tests.

2 years agoHandle `unusable_binding` more compactly.
Vadim Petrochenkov [Tue, 12 Apr 2022 17:18:08 +0000 (20:18 +0300)]
Handle `unusable_binding` more compactly.

2 years agoApply suggestions from code review
Oli Scherer [Tue, 12 Apr 2022 19:36:09 +0000 (21:36 +0200)]
Apply suggestions from code review

Co-authored-by: Michael Goulet <michael@errs.io>
Co-authored-by: Rémy Rakic <remy.rakic+github@gmail.com>
2 years agoImplement tuples using recursion
Caio [Tue, 12 Apr 2022 19:23:36 +0000 (16:23 -0300)]
Implement tuples using recursion

2 years agoregression test for spurrious "help: store this in the heap"
Michael Howell [Tue, 12 Apr 2022 19:14:32 +0000 (12:14 -0700)]
regression test for spurrious "help: store this in the heap"

Closes #82446

2 years agoAuto merge of #95987 - m-ou-se:rollup-sdevd9b, r=m-ou-se
bors [Tue, 12 Apr 2022 18:44:05 +0000 (18:44 +0000)]
Auto merge of #95987 - m-ou-se:rollup-sdevd9b, r=m-ou-se

Rollup of 4 pull requests

Successful merges:

 - #95783 (rustdoc doctest: include signal number in exit status)
 - #95794 (`parse_tt`: a few more tweaks)
 - #95963 ([bootstrap] Grab the right FileCheck binary for dist when cross-compiling.)
 - #95975 (Don't test -Cdefault-linker-libraries=yes when cross compiling.)

Failed merges:

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

2 years agoAdd Rustdoc book link to scrape examples help. Remove remaining panic
Will Crichton [Tue, 12 Apr 2022 18:05:07 +0000 (11:05 -0700)]
Add Rustdoc book link to scrape examples help. Remove remaining panic
locations in scrape examples.

2 years agoRemove NodeIdHashingMode.
Camille GILLOT [Mon, 4 Apr 2022 20:19:25 +0000 (22:19 +0200)]
Remove NodeIdHashingMode.