119910 Commits

Author SHA1 Message Date
Oliver Scherer
38ae8f3286 Simplify the tcx.alloc_map API 2020-05-08 10:59:08 +02: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
Cameron Taggart
74f00e2f63 #[allow(unused)] 2020-05-07 22:30:14 -06:00
Cameron Taggart
60c66e3f82 allow wasm target for rustc-ap-rustc_span 2020-05-07 22:13:50 -06: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
Tom Karpiniec
4fea9cdd24 Simplify bitcode embedding - either None or Full 2020-05-08 09:48:30 +10:00
mibac138
cd291b8e51 Adjust cfg(version) to lang team decision 2020-05-08 01:07:03 +02:00
Nicholas Nethercote
d26d187ff8 Replace MatchVisitor::check_in_cx with MatchVisitor::new_cx.
The closure isn't necessary.
2020-05-08 08:57:25 +10: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
Jack Huey
5fa4c63be0 Fix nit and cargo.lock 2020-05-07 17:46:31 -04:00
Nicholas Nethercote
95f600d6b9 Remove MatchCheckCtxt::create_and_enter.
It has a single call site.
2020-05-08 07:42:49 +10:00
Jack Huey
a24df5b3cd Reintegrate chalk using chalk-solve 2020-05-07 17:35:58 -04: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
Yuki Okushi
9a164ff4c5
Skip tests on emscripten 2020-05-08 00:39:02 +09:00
Hanif Bin Ariffin
b2a8b39cd0 Renamed "undef" stuff to "uninit"
1. InvalidUndefBytes -> InvalidUninitBytes
2. ScalarMaybeUndef -> ScalarMaybeUninit
3. UndefMask -> InitMask

Related issue  #71193
2020-05-07 11:27:29 -04:00
Yoshua Wuyts
b04599ff84 Add Arc::{incr,decr}_strong_count 2020-05-07 17:18:25 +02:00
Stanislav Tkach
0bf269925b
Fix strip-priv-imports pass name in the rustdoc documentation 2020-05-07 16:22:22 +03:00
Yoshua Wuyts
029515d916 Add core::future::{pending,ready} 2020-05-07 15:19:27 +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
Tom Karpiniec
a390803782 Provide configurable LLVM cmdline section via target spec
The App Store performs certain sanity checks on bitcode, including that
an acceptable set of command line arguments was used when compiling a
given module. For Rust code to be distributed on the app store with
bitcode rustc must pretend to have the same command line arguments.
2020-05-07 15:35:56 +10:00
Tom Karpiniec
342aad1d1b Force embed-bitcode on non-simulator iOS/tvOS targets
At this time Apple recommends Bitcode be included for iOS apps, and
requires it for tvOS. It is unlikely that a developer would want to
disable bitcode when building for these targets, yet by default it will
not be generated. This presents a papercut for developers on those
platforms.

Introduces a new TargetOption boolean key for specific triples to
indicate that bitcode should be generated, even if cargo attempts to
optimise with -Cembed-bitcode=no.
2020-05-07 15:35:48 +10:00
Nicholas Nethercote
cbc577fc71 Reduce TypedArena creations in check_match.
`check_match` creates a new `TypedArena` for every call to
`create_and_enter`. DHAT tells me that each `TypedArena` typically is
barely used, with typically a single allocation per arena.

This commit moves the `TypedArena` creation outwards a bit, into
`check_match`, and then passes it into `create_and_enter`. This reduces
the number of arenas created by about 4-5x, for a very small perf win.
(Moving the arena creation further outwards is hard because
`check_match` is a query.)
2020-05-07 15:03:45 +10: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