Commit Graph

119782 Commits

Author SHA1 Message Date
bors 7b805396bf Auto merge of #72010 - Dylan-DPC:rollup-prdj0pk, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #71989 (Use a single enum for the kind of a const context)
 - #71993 (Remove old `util/liveness.rs` module)
 - #71999 (Add myself to mailmap.)
 - #72001 (Adjust cfg(version) to lang team decision)
 - #72007 (Fix some tests failing in `--pass check` mode)
 - #72008 (Add const-generics test)

Failed merges:

r? @ghost
2020-05-08 13:11:43 +00:00
Dylan DPC 678954000a
Rollup merge of #72008 - lcnr:patch-3, r=varkor
Add const-generics test

Taken from #71973 as this apparently already compiles.

r? @varkor
2020-05-08 14:11:52 +02:00
Dylan DPC c4c634034a
Rollup merge of #72007 - petrochenkov:passcheck3, r=RalfJung
Fix some tests failing in `--pass check` mode

r? @RalfJung
2020-05-08 14:11:51 +02:00
Dylan DPC 5cef212dca
Rollup merge of #72001 - mibac138:cfg-version, r=petrochenkov
Adjust cfg(version) to lang team decision

See https://github.com/rust-lang/rust/issues/64796#issuecomment-625474439 for details

r? @petrochenkov who reviewed the original PR (#71314)
2020-05-08 14:11:49 +02:00
Dylan DPC 8f247c1804
Rollup merge of #71999 - crlf0710:mailmap, r=Dylan-DPC
Add myself to mailmap.
2020-05-08 14:11:47 +02:00
Dylan DPC 681d747b65
Rollup merge of #71993 - ecstatic-morse:cleanup-old-liveness, r=jonas-schievink
Remove old `util/liveness.rs` module

The liveness dataflow analysis now lives in the `dataflow` module, so this one is no longer necessary. I've copied the relevant bits of the module docs for `util::liveness` to `MaybeLiveLocals`. The example in the docs is now a `mir-dataflow` test: a08c47310c/src/test/ui/mir-dataflow/liveness-ptr.rs (L6-L26)

The borrow-checker used the same notion of "defs" and "uses", so I've moved it into a submodule. I would have moved it to `util/def_use.rs`, since it seems generally useful, but there's already a slightly [different version](https://github.com/rust-lang/rust/blob/master/src/librustc_mir/util/def_use.rs) of the same abstraction needed for copy propagation.
2020-05-08 14:11:45 +02:00
Dylan DPC 1e6c199653
Rollup merge of #71989 - ecstatic-morse:const-context-enum, r=oli-obk
Use a single enum for the kind of a const context

This adds a `ConstContext` enum to the `rustc_hir` crate and method that can be called via `tcx.hir()` to get the `ConstContext` for a given body owner. This arose from discussion in #71824.

r? @oli-obk
2020-05-08 14:11:44 +02:00
Bastian Kauschke 4fd70e4ed9
add const-generics test 2020-05-08 13:42:17 +02:00
Vadim Petrochenkov 13c93120cf Fix some tests failing in `--pass check` mode 2020-05-08 14:27:36 +03:00
bors a51e004e1b Auto merge of #71917 - RalfJung:miri, r=RalfJung
update miri

In particular this includes the change to yield on `spin_loop_hint`, which is needed for https://github.com/rust-lang/rust/pull/71737.
r? @ghost Cc @rust-lang/miri

Fixes https://github.com/rust-lang/rust/issues/71963
2020-05-08 07:29:42 +00:00
bors 29630cea47 Auto merge of #71992 - Dylan-DPC:rollup-29qjvpe, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70733 (Add Arc::{incr,decr}_strong_count)
 - #71598 (improve Drop documentation)
 - #71783 (Detect errors caused by `async` block in 2015 edition)
 - #71903 (reword "possible candidate" import suggestion)
 - #71960 (Fix E0284 to not use incorrect wording)

Failed merges:

r? @ghost
2020-05-08 01:19:24 +00:00
Charles Lew 4c032d496b Add myself to mailmap. 2020-05-08 08:26:29 +08:00
mibac138 cd291b8e51 Adjust cfg(version) to lang team decision 2020-05-08 01:07:03 +02:00
Ralf Jung e583a5c7dc update miri 2020-05-08 00:28:51 +02:00
bors 1eefa6783c Auto merge of #71995 - pietroalbini:ci-windows-detect-latest-python, r=Mark-Simulacrum
[CI] Use the latest Python available on Windows

This PR changes our Windows CI to always use the latest Python interpreter available in the GHA tool cache instead of hardcoding Python 3.7.6. This is needed because occasionally GitHub bumps the installed version, deleting the previous one.

This fixes the current GHA outage we're having. I fully expect the outage to propagate to Azure Pipelines in the coming days if we don't merge this, as both GHA and Azure use the same underlying image. Once the PR is merged we can re-enabled the double-gating.

r? @Mark-Simulacrum
2020-05-07 21:52:39 +00:00
Pietro Albini de2d9877dc
ci: use the latest python available on windows
This commit changes our Windows CI to always use the latest Python
interpreter available in the GHA tool cache instead of hardcoding Python
3.7.6. This is needed because occasionally GitHub bumps the installed
version, deleting the previous one.
2020-05-07 23:12:13 +02:00
Dylan MacKenzie 046848e23d Incorporate old module docs into `MaybeLiveLocals` docs 2020-05-07 13:13:46 -07:00
Dylan MacKenzie 34508d8880 Remove old `util/liveness.rs` module
The liveness dataflow analysis now lives in
`librustc_mir/dataflow/impls/liveness.rs`. The borrow-checker has an
abstraction around of "defs" and "uses" that I've made module private. I
would have moved it to `util/def_use.rs`, but there's a slightly
different abstraction used for copy propagation with that name.
2020-05-07 12:59:12 -07:00
Dylan DPC 14cbbf3820
Rollup merge of #71960 - estebank:fix-E0284, r=davidtwco
Fix E0284 to not use incorrect wording

Fix #71584, fix #69683.
2020-05-07 21:46:16 +02:00
Dylan DPC 53d15401ba
Rollup merge of #71903 - euclio:reword-possible-better, r=petrochenkov
reword "possible candidate" import suggestion

This suggestion has always read a bit awkwardly to me, particularly the "possible better candidate" variant.

This commit rewords the suggestion to be more concise and mention the kind of the suggested item. There isn't a nice way to label individual suggestions, so I opted to use "items" in the case of multiple suggestions.
2020-05-07 21:46:14 +02:00
Dylan DPC f3691ac066
Rollup merge of #71783 - estebank:async-block-2015, r=tmandry
Detect errors caused by `async` block in 2015 edition

Fix #67204.
2020-05-07 21:46:12 +02:00
Dylan DPC bd704f794f
Rollup merge of #71598 - lcnr:drop-docs, r=RalfJung,Mark-Simulacrum
improve Drop documentation

Fixes #36073

This is a continuation of #57449 and most of the work here was done by
the excellent @steveklabnik.
2020-05-07 21:46:11 +02:00
Dylan DPC 5e9b3720e5
Rollup merge of #70733 - yoshuawuyts:arc-increment-refcount, r=Mark-Simulacrum
Add Arc::{incr,decr}_strong_count

This adds two `unsafe` methods to `Arc`: `incr_strong_count` and `decr_strong_count`. A suggestion to add methods to change the strong count in `Arc` came up in during review in https://github.com/rust-lang/rust/pull/68700#discussion_r396169064, and from asking a few people this seemed like generally useful to have.

References:
- [Motivation from #68700](https://github.com/rust-lang/rust/pull/68700#discussion_r396169064)
- [Real world example in an executor](https://docs.rs/extreme/666.666.666666/src/extreme/lib.rs.html#13)
2020-05-07 21:46:06 +02:00
Dylan MacKenzie e356d5c489 Use `hir::ConstContext` instead of local enums 2020-05-07 11:28:55 -07:00
Dylan MacKenzie 3f661dab14 Add `hir::ConstContext` 2020-05-07 11:28:55 -07:00
Esteban Küber a7b03ad4ed Fix E0284 to not use incorrect wording
Fix #71584, fix #69683.
2020-05-07 10:19:37 -07:00
bors a08c47310c Auto merge of #71985 - Dylan-DPC:rollup-9ceqump, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #71938 (Use trait_object_dummy_self instead of err)
 - #71952 (Add some regression tests)
 - #71959 (tests: Fix warnings in `rust_test_helpers.c`)
 - #71962 (Grammar)
 - #71972 (use hex for pointers in Miri error messages)
 - #71980 (Allow a few warnings.)

Failed merges:

r? @ghost
2020-05-07 16:03:59 +00:00
Dylan DPC c818e84821
Rollup merge of #71980 - steveklabnik:warnings-fixes, r=Mark-Simulacrum
Allow a few warnings.

On Windows, these types were causing warnings to be emitted during the
build. These types are allowed to not have idiomatic names, so the
warning should be supressed.
2020-05-07 17:59:00 +02:00
Dylan DPC 806089ad70
Rollup merge of #71972 - RalfJung:miri-validity-error-refine, r=oli-obk
use hex for pointers in Miri error messages

Also refine vtable error message: distinguish between "drop fn does not point to a function" and "drop fn points to a function with the wrong signature".
2020-05-07 17:58:59 +02:00
Dylan DPC 2e9db8df65
Rollup merge of #71962 - jsoref:grammar, r=Dylan-DPC
Grammar

I've split this into individual changes so that people can veto individually. I'm not attached to most of them.

`zeroes` vs. `zeros` is why I took the effort to run this through app.grammarly (which disappointingly didn't even notice).
2020-05-07 17:58:57 +02:00
Dylan DPC 9e4a745b8d
Rollup merge of #71959 - petrochenkov:chelpers, r=Mark-Simulacrum
tests: Fix warnings in `rust_test_helpers.c`

MSVC is silly and doesn't recognize `assert` as diverging.
2020-05-07 17:58:55 +02:00
Dylan DPC 480f718158
Rollup merge of #71952 - JohnTitor:add-tests, r=Dylan-DPC
Add some regression tests

Closes #29988
Closes #34979
Pick up two snippets that have been fixed from #67945 (shouldn't be closed yet!)
2020-05-07 17:58:53 +02:00
Dylan DPC 037ae4008f
Rollup merge of #71938 - mark-i-m:de-abuse-err-4, r=eddyb
Use trait_object_dummy_self instead of err

r? @eddyb

cc #70866.
2020-05-07 17:58:52 +02:00
Yuki Okushi d717e55f19
Add some skip flags 2020-05-08 00:51:13 +09:00
Yoshua Wuyts b04599ff84 Add Arc::{incr,decr}_strong_count 2020-05-07 17:18:25 +02:00
Steve Klabnik d14f000ccc Allow a few warnings.
On Windows, these types were causing warnings to be emitted during the
build. These types are allowed to not have idiomatic names, so the
warning should be supressed.
2020-05-07 07:23:06 -05:00
bors 4802f097c8 Auto merge of #71649 - ecstatic-morse:ci-stage0-doc, r=Mark-Simulacrum
Ensure that `./x.py doc --stage 0 src/libstd` works via CI

This was split off from #71645, which recommends that users first try building `libstd` docs with the bootstrap `rustdoc`. This should work in most cases, but will fail if we start using a very recent `rustdoc` feature outside a `#[cfg(not(bootstrap))]`.

It would be very nice to guarantee that `./x.py doc --stage 0 src/libstd` works, since it allows documentation changes to be rendered locally without needing to build the compiler. However, it may put too big a burden on `rustdoc` developers who presumably want to dogfood new features.
2020-05-07 09:47:49 +00:00
Bastian Kauschke 33324f5a40 rewrite Drop documentation 2020-05-07 09:10:31 +02:00
Ralf Jung d1ea287feb use hex for pointers in Miri error messages; refine vtable error message 2020-05-07 08:57:40 +02:00
bors 63d0377994 Auto merge of #71925 - ehuss:update-cargo, r=ehuss
Update cargo

7 commits in 258c89644c4587273a3ed3ee9522d2640facba43..f534844c25cacc5e004404cea835ac85e35ca3fd
2020-04-30 21:48:21 +0000 to 2020-05-06 14:39:10 +0000
- Avoid testing git-specific error messages (rust-lang/cargo#8212)
- features: allow activated_features_unverified to communicate not-present (rust-lang/cargo#8194)
- Don't force rustc to do codegen for LTO builds (rust-lang/cargo#8192)
- Hint git-fetch-with-cli on git errors (rust-lang/cargo#8166)
- ¬∃x. ¬y => ∀x. y (rust-lang/cargo#8205)
- clippy fixes (rust-lang/cargo#8189)
- Rename bitcode-in-rlib flag to embed-bitcode (rust-lang/cargo#8204)
2020-05-07 05:56:20 +00:00
Andy Russell 9f88d75710
reword "possible candidate" import suggestion 2020-05-07 00:33:25 -04:00
bors 97f3eeec82 Auto merge of #55617 - oli-obk:stacker, r=nagisa,oli-obk
Prevent compiler stack overflow for deeply recursive code

I was unable to write a test that

1. runs in under 1s
2. overflows on my machine without this patch

The following reproduces the issue, but I don't think it's sensible to include a test that takes 30s to compile. We can now easily squash newly appearing overflows by the strategic insertion of calls to `ensure_sufficient_stack`.

```rust
// compile-pass

#![recursion_limit="1000000"]

macro_rules! chain {
    (EE $e:expr) => {$e.sin()};
    (RECURSE $i:ident $e:expr) => {chain!($i chain!($i chain!($i chain!($i $e))))};
    (Z $e:expr) => {chain!(RECURSE EE $e)};
    (Y $e:expr) => {chain!(RECURSE Z $e)};
    (X $e:expr) => {chain!(RECURSE Y $e)};
    (A $e:expr) => {chain!(RECURSE X $e)};
    (B $e:expr) => {chain!(RECURSE A $e)};
    (C $e:expr) => {chain!(RECURSE B $e)};
    // causes overflow on x86_64 linux
    // less than 1 second until overflow on test machine
    // after overflow has been fixed, takes 30s to compile :/
    (D $e:expr) => {chain!(RECURSE C $e)};
    (E $e:expr) => {chain!(RECURSE D $e)};
    (F $e:expr) => {chain!(RECURSE E $e)};
    // more than 10 seconds
    (G $e:expr) => {chain!(RECURSE F $e)};
    (H $e:expr) => {chain!(RECURSE G $e)};
    (I $e:expr) => {chain!(RECURSE H $e)};
    (J $e:expr) => {chain!(RECURSE I $e)};
    (K $e:expr) => {chain!(RECURSE J $e)};
    (L $e:expr) => {chain!(RECURSE L $e)};
}

fn main() {
    let x = chain!(D 42.0_f32);
}
```

fixes #55471
fixes #41884
fixes #40161
fixes #34844
fixes #32594

cc @alexcrichton @rust-lang/compiler

I looked at all code that checks the recursion limit and inserted stack growth calls where appropriate.
2020-05-07 00:03:23 +00:00
Josh Soref 6c8c3f8ac4
grammar: dealing-with 2020-05-06 19:01:27 -04:00
Josh Soref eb12784dc4
grammar: simplify to avoid that 2020-05-06 19:01:05 -04:00
Josh Soref 5d2d7e7725
grammar: stray comma 2020-05-06 19:00:40 -04:00
Josh Soref 488e660728
grammar: noun not verb 2020-05-06 19:00:15 -04:00
Josh Soref c8aba78613
grammar: subject-verb not subject-verb-verb 2020-05-06 18:59:52 -04:00
Josh Soref 5f54ce7ec9
grammar: disambiguate space-character 2020-05-06 18:58:45 -04:00
Josh Soref 39b5b7000a
grammar: count-agreement default ... is 2020-05-06 18:58:12 -04:00
Josh Soref 642541307f
grammar: which vs that 2020-05-06 18:56:25 -04:00