]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoAuto merge of #61682 - Centril:stabilize-type_alias_enum_variants, r=petrochenkov
bors [Mon, 1 Jul 2019 03:11:19 +0000 (03:11 +0000)]
Auto merge of #61682 - Centril:stabilize-type_alias_enum_variants, r=petrochenkov

Stabilize `type_alias_enum_variants` in Rust 1.37.0

Stabilize `#![feature(type_alias_enum_variants)]` which allows type-relative resolution with highest priority to `enum` variants in both expression and pattern contexts. For example, you may now write:

```rust
enum Option<T> {
    None,
    Some(T),
}

type OptAlias<T> = Option<T>;

fn work_on_alias(x: Option<u8>) -> u8 {
    match x {
        OptAlias::Some(y) => y + 1,
        OptAlias::None => 0,
    }
}
```

Closes https://github.com/rust-lang/rfcs/issues/2218
Closes https://github.com/rust-lang/rust/issues/52118

r? @petrochenkov

5 years agoAuto merge of #59722 - Zoxc:query-cache, r=eddyb
bors [Sun, 30 Jun 2019 12:15:14 +0000 (12:15 +0000)]
Auto merge of #59722 - Zoxc:query-cache, r=eddyb

Clean up query cache code

There are a couple of queries for which we do not promote saved results, which have been removed from caching here. This was likely the cause of the regression in https://github.com/rust-lang/rust/pull/57293#issuecomment-476421298.

r? @michaelwoerister

5 years agoKeep caching for non-promoted queries
John Kåre Alsaker [Wed, 26 Jun 2019 08:16:56 +0000 (10:16 +0200)]
Keep caching for non-promoted queries

5 years agoClean up query cache code
John Kåre Alsaker [Fri, 5 Apr 2019 11:11:44 +0000 (13:11 +0200)]
Clean up query cache code

5 years agoAuto merge of #61252 - indygreg:upgrade-musl, r=alexcrichton
bors [Sun, 30 Jun 2019 08:42:58 +0000 (08:42 +0000)]
Auto merge of #61252 - indygreg:upgrade-musl, r=alexcrichton

Update musl to 1.1.22

This is the latest available version. I noticed Rust wasn't using the
latest version when I attempted to have Cargo link object files produced
outside of Cargo / Rust's toolchain and was getting missing symbol
errors. Those missing symbols were added in 1.1.21 and 1.1.22.

I'm not fully sure of the implications of this change or how
comprehensive the test coverage is. Upstream changes in 1.1.21 and
1.1.22 can be found at
https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v1.1.22&id=e97681d6f2c44bf5fa9ecdd30607cb63c780062e#n1989.

5 years agoAuto merge of #61767 - JohnTitor:update-smallvec, r=nikomatsakis
bors [Sun, 30 Jun 2019 05:21:51 +0000 (05:21 +0000)]
Auto merge of #61767 - JohnTitor:update-smallvec, r=nikomatsakis

Update new_debug_unreachable

In latest master, smallvec has been updated. So we only update new_debug_unreachable to remove unmaintained dependencies.

5 years agoAuto merge of #61459 - GuillaumeGomez:fix-rustdoc-sysroot-panic, r=ollie27,bjorn3...
bors [Sun, 30 Jun 2019 01:44:44 +0000 (01:44 +0000)]
Auto merge of #61459 - GuillaumeGomez:fix-rustdoc-sysroot-panic, r=ollie27,bjorn3,QuietMisdreavus

Prevent panic when sysroot cannot be computed

Fixes #61377.

cc @rotty @rust-lang/rustdoc

r? @Manishearth

5 years agoAuto merge of #62226 - Centril:rollup-rcy1alx, r=Centril
bors [Sat, 29 Jun 2019 11:45:11 +0000 (11:45 +0000)]
Auto merge of #62226 - Centril:rollup-rcy1alx, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #61199 (Revert "Set test flag when rustdoc is running with --test option" )
 - #61755 (Add `--pass $mode` to compiletest through `./x.py`)
 - #61818 (Issue #60709 test)
 - #62023 (publish_toolstate: don't use 'new' from inside the loop)
 - #62104 (Inform the query system about properties of queries at compile time)
 - #62163 (Avoid mem::uninitialized() in std::sys::unix)
 - #62204 (doc(libcore) Fix CS)

Failed merges:

r? @ghost

5 years agoRollup merge of #62204 - Hywan:patch-2, r=rkruppe
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:14 +0000 (11:18 +0200)]
Rollup merge of #62204 - Hywan:patch-2, r=rkruppe

doc(libcore) Fix CS

A small PR to fix a small CS typo in `iter/traits/collect.rs`.

5 years agoRollup merge of #62163 - cuviper:unix-uninit, r=RalfJung
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:13 +0000 (11:18 +0200)]
Rollup merge of #62163 - cuviper:unix-uninit, r=RalfJung

Avoid mem::uninitialized() in std::sys::unix

For `libc` types that will be initialized in FFI calls, we can just use
`MaybeUninit` and then pass around raw pointers.

For `sun_path_offset()`, which really wants `offset_of`, all callers
have a real `sockaddr_un` available, so we can use that reference.

r? @RalfJung

5 years agoRollup merge of #62104 - Zoxc:query-info, r=eddyb
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:11 +0000 (11:18 +0200)]
Rollup merge of #62104 - Zoxc:query-info, r=eddyb

Inform the query system about properties of queries at compile time

5 years agoRollup merge of #62023 - RalfJung:miri-toolstate, r=kennytm
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:10 +0000 (11:18 +0200)]
Rollup merge of #62023 - RalfJung:miri-toolstate, r=kennytm

publish_toolstate: don't use 'new' from inside the loop

I think I made a mistake in https://github.com/rust-lang/rust/pull/61938 by using `new` outside the inner loop. This PR fixes that.

However, no issue got created at all for https://github.com/rust-lang/rust/pull/62003#issuecomment-504356964, and I don't know why that is.   The script should be [triggered by Traivs](https://github.com/rust-lang/rust/blob/56a12b2ad058f22f1ef090713df15598525ba4a4/.travis.yml#L240), and I can find no trace of that in [the build log](https://travis-ci.com/rust-lang/rust/jobs/209880042).

5 years agoRollup merge of #61818 - tmandry:issue-60709-test, r=cramertj
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:08 +0000 (11:18 +0200)]
Rollup merge of #61818 - tmandry:issue-60709-test, r=cramertj

Issue #60709 test

Adds a test for #60709, which was fixed as part of #59897.

r? @cramertj

5 years agoRollup merge of #61755 - Centril:compiletest-force-check, r=petrochenkov
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:07 +0000 (11:18 +0200)]
Rollup merge of #61755 - Centril:compiletest-force-check, r=petrochenkov

Add `--pass $mode` to compiletest through `./x.py`

Adds a flag `--pass $mode` to compiletest, which is exposed through `./x.py`.

When `--pass $mode` is passed, `{check,build,compile,run}-pass` tests will be forced to run under the given `$mode` unless the directive `// ignore-pass` exists in the test file.

The modes are explained in https://github.com/rust-lang/rust/pull/61778:
- `check` has the same effect as `cargo check`
- `build` or `compile` have the same effect as `cargo build`
- `run` has the same effect as `cargo run`

On my machine, `./x.py -i test src/test/run-pass --stage 1 --pass check` takes 38 seconds whereas it takes 2 min 7 seconds without `--pass check`.

cc https://github.com/rust-lang/rust/issues/61712

r? @petrochenkov

5 years agoRollup merge of #61199 - ollie27:rustdoc_cfg_test, r=QuietMisdreavus
Mazdak Farrokhzad [Sat, 29 Jun 2019 09:18:06 +0000 (11:18 +0200)]
Rollup merge of #61199 - ollie27:rustdoc_cfg_test, r=QuietMisdreavus

Revert "Set test flag when rustdoc is running with --test option"

Reverts https://github.com/rust-lang/rust/pull/59940.

It caused doctests in this repository to no longer be tested including all of the core crate.

5 years agoAuto merge of #62105 - JohnTitor:update-miri, r=RalfJung
bors [Sat, 29 Jun 2019 05:05:32 +0000 (05:05 +0000)]
Auto merge of #62105 - JohnTitor:update-miri, r=RalfJung

Update miri

Fixes #62101

r? @RalfJung

5 years agoMove async-fn-size test to async-await/
Tyler Mandry [Fri, 14 Jun 2019 00:07:44 +0000 (17:07 -0700)]
Move async-fn-size test to async-await/

5 years agoAdd regression test for #60709
Tyler Mandry [Thu, 13 Jun 2019 22:58:26 +0000 (15:58 -0700)]
Add regression test for #60709

Closes #60709.

5 years agoAuto merge of #62192 - Centril:rollup-kssnlta, r=Centril
bors [Fri, 28 Jun 2019 14:08:07 +0000 (14:08 +0000)]
Auto merge of #62192 - Centril:rollup-kssnlta, r=Centril

Rollup of 16 pull requests

Successful merges:

 - #61878 (improve pinning projection docs)
 - #62043 (Remove `FnBox`)
 - #62067 (Add suggestion for missing `.await` keyword)
 - #62076 (Updated RELEASES.md for 1.36.0)
 - #62102 (call out explicitly that general read needs to be called with an initialized buffer)
 - #62106 (Add more tests for async/await)
 - #62124 (refactor lexer to use idiomatic borrowing)
 - #62131 (libsyntax: Fix some Clippy warnings)
 - #62152 (Don't ICE on item in `.await` expression)
 - #62154 (Remove old fixme)
 - #62155 (Add regression test for MIR drop generation in async loops)
 - #62156 (Update books)
 - #62160 (Remove outdated question_mark_macro_sep lint)
 - #62164 (save-analysis: use buffered writes)
 - #62171 (rustc: Retry SIGILL linker invocations)
 - #62176 (Update RLS)

Failed merges:

r? @ghost

5 years agodoc(libcore) Fix CS
Ivan Enderlin [Fri, 28 Jun 2019 12:01:58 +0000 (14:01 +0200)]
doc(libcore) Fix CS

A small PR to fix a small CS typo in `iter/traits/collect.rs`.

5 years agoAuto merge of #62179 - alexcrichton:less-travis-appveyor, r=pietroalbini
bors [Fri, 28 Jun 2019 10:20:36 +0000 (10:20 +0000)]
Auto merge of #62179 - alexcrichton:less-travis-appveyor, r=pietroalbini

ci: Move most builders to Azure Pipelines

This commit disables all builders on Travis and almost all builders on
AppVeyor now that they're all running on Azure Pipelines. There is one
remaining builder on AppVeyor which hasn't been migrated yet due to a
test failure on Azure, which we'll be debugging soon. One remaining
builder is left on Travis which is the tools builder whenever a
submodule is changed, but we'll probably turn that off soon since it's
just for PRs.

The other major change in this PR is that the auto builders on Azure are
now configured with "real" prod credentials which should cause them to
publish all artifacts into the official CI buckets.

5 years agoci: Move most builders to Azure Pipelines
Alex Crichton [Thu, 27 Jun 2019 12:30:57 +0000 (05:30 -0700)]
ci: Move most builders to Azure Pipelines

This commit disables all builders on Travis and almost all builders on
AppVeyor now that they're all running on Azure Pipelines. There is one
remaining builder on AppVeyor which hasn't been migrated yet due to a
test failure on Azure, which we'll be debugging soon. One remaining
builder is left on Travis which is the tools builder whenever a
submodule is changed, but we'll probably turn that off soon since it's
just for PRs.

The other major change in this PR is that the auto builders on Azure are
now configured with "real" prod credentials which should cause them to
publish all artifacts into the official CI buckets.

5 years agoRollup merge of #62176 - Xanewok:update-rls, r=alexcrichton
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:20 +0000 (23:01 +0200)]
Rollup merge of #62176 - Xanewok:update-rls, r=alexcrichton

Update RLS

Merged PRs:
* fix(cmd): make clear_env_rust_log default to false (https://github.com/rust-lang/rls/pull/1486)
  - Retain `RUST_LOG` in `rls --cli` mode
* Pass --file-lines to rustfmt only if specified (https://github.com/rust-lang/rls/pull/1497)
  - Fix entire-file formatting when using external rustfmt (specified via `rustfmt_path` config)
* Ensure that --error-format is only passed once to `rustc` (https://github.com/rust-lang/rls/pull/1500)
  - Unbreaks RLS when used together with Cargo [pipelining build](https://github.com/rust-lang/rust/issues/60988) feature (@alexcrichton I'd consider this a stabilization blocker, mind adding it to the tracking issue for the record? :bowing_man: )

5 years agoRollup merge of #62171 - alexcrichton:more-restarts, r=eddyb
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:18 +0000 (23:01 +0200)]
Rollup merge of #62171 - alexcrichton:more-restarts, r=eddyb

rustc: Retry SIGILL linker invocations

We've seen quite a few issues with spurious illegal instructions getting
executed on OSX on CI recently. For whatever reason `cc` itself is
executing an illegal instruction and we're not really getting any other
information about what's happening. Since we're already retrying the
linker when it segfaults, let's just continue to retry everything and
automatically reinvoke the linker when it fails with an illegal instruction.

5 years agoRollup merge of #62164 - jsgf:buffer-save-analysis, r=Xanewok
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:17 +0000 (23:01 +0200)]
Rollup merge of #62164 - jsgf:buffer-save-analysis, r=Xanewok

save-analysis: use buffered writes

Otherwise it ends up writing the file byte at a time, which can be very slow for large outputs.

cc @ljw1004

5 years agoRollup merge of #62160 - ia0:question_mark_macro_sep, r=petrochenkov
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:15 +0000 (23:01 +0200)]
Rollup merge of #62160 - ia0:question_mark_macro_sep, r=petrochenkov

Remove outdated question_mark_macro_sep lint

5 years agoRollup merge of #62156 - ehuss:update-books, r=ehuss
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:14 +0000 (23:01 +0200)]
Rollup merge of #62156 - ehuss:update-books, r=ehuss

Update books

Update nomicon, reference, book, rust-by-example, rustc-guide

## nomicon

2 commits in c656171b749b7307f21371dd0d3278efee5573b8..341c221116a8b9f1010cf1eece952b80c5ec7f54
2019-04-25 15:31:26 -0400 to 2019-06-19 09:08:47 -0700
- Fix some links.
- cleanup the intro, and clarify how it relates to the reference (rust-lang-nursery/nomicon#140)

## reference

2 commits in 08ae27a4921ca53967656a7391c82f6c0ddd1ccc..7a5aab5fd50d6290679beb4cf42fa5f46ed22aec
2019-06-17 11:24:13 -0700 to 2019-06-20 17:38:52 +0200
- Update for cfg on generic parameter. (rust-lang-nursery/reference#624)
- Link to "const functions" section from constant expressions list (rust-lang-nursery/reference#623)

## book

2 commits in 9aacfcc4c5b102c8cda195932addefd32fe955d2..6c0d83499c8e77e06a71d28c5e1adccec278d4f3
2019-06-16 21:27:26 -0400 to 2019-06-23 20:25:30 -0400
- fancy quotes
- Edits made in copyedit

## rust-by-example

2 commits in b27472962986e85c94f4183b1a6d2207660d3ed6..62b3ff2cb44dd8b648c3ef2a9347c3706d148014
2019-06-17 15:52:07 -0300 to 2019-06-24 09:17:21 -0300
- A couple of fixes for the `Box, stack and heap` chapter. (rust-lang/rust-by-example#1206)
- [typo] Note, that it is -&gt; Note that, it is (rust-lang/rust-by-example#1207)

## rustc-guide

38 commits in f55e97c145cf37fd664db2e0e2f2d05df328bf4f..abf512fc9cc969dcbea69aa15b44586bbeb13c2d
2019-06-15 17:29:12 -0500 to 2019-06-26 11:05:58 -0500
- fix long line
- add `point` to the glossary and link a use of it
- fix indentation
- Update src/borrow_check/region_inference/placeholders_and_universes.md
- Update src/borrow_check/region_inference/placeholders_and_universes.md
- Update src/borrow_check/region_inference/placeholders_and_universes.md
- Update src/borrow_check/region_inference/member_constraints.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/member_constraints.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/member_constraints.md
- Update src/borrow_check/region_inference/member_constraints.md
- Update src/borrow_check/region_inference/lifetime_parameters.md
- Update src/borrow_check/region_inference/member_constraints.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- Update src/borrow_check/region_inference/lifetime_parameters.md
- Update src/borrow_check/region_inference/lifetime_parameters.md
- Update src/borrow_check/region_inference/lifetime_parameters.md
- Update src/borrow_check/region_inference/constraint_propagation.md
- adjust overview slightly
- describe region inference and member constraints in some detail
- start filling out the constraint propagation chapter in more detail
- break out parts of the region inference chapter into sub-chapters
- fix typo
- avoid ftp links
- fix broken links
- add bibligraphy appendix
- Update to mdbook-linkcheck 0.3.0
- Update mdbook
- Change stage0 cfg_attr to bootstrap
- fix compiler-team
- Added Rustc Debugger Support Chapter

5 years agoRollup merge of #62155 - cramertj:61872, r=centril
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:13 +0000 (23:01 +0200)]
Rollup merge of #62155 - cramertj:61872, r=centril

Add regression test for MIR drop generation in async loops

Fixes #61986.

r? @Centril

5 years agoRollup merge of #62154 - mark-i-m:old-fixme, r=Centril
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:11 +0000 (23:01 +0200)]
Rollup merge of #62154 - mark-i-m:old-fixme, r=Centril

Remove old fixme

fixed in https://github.com/rust-lang/rust/pull/60160

r? @Centril

5 years agoRollup merge of #62152 - doctorn:async_let_ice, r=cramertj
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:10 +0000 (23:01 +0200)]
Rollup merge of #62152 - doctorn:async_let_ice, r=cramertj

Don't ICE on item in `.await` expression

The code for lowering a `.await` expression missed that item IDs may already have been assigned for items inside of an `async` block, or for closures. This change means we no longer exit early after finding a `.await` in a block that isn't `async` and instead just emit the error. This avoids an ICE generated due to item IDs not being densely generated. (The `YieldSource` of the generated `yield` expression is  used to avoid errors generated about having `yield` expressions outside of generator literals.)

r? @cramertj

Resolves #62009 and resolves #61685

5 years agoRollup merge of #62131 - Xanewok:clip-some-nits, r=petrochenkov
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:09 +0000 (23:01 +0200)]
Rollup merge of #62131 - Xanewok:clip-some-nits, r=petrochenkov

libsyntax: Fix some Clippy warnings

When I was working on it before a lot of these popped up in the RLS so I figured I'll send a small patch fixing only the (hopefully) uncontroversial ones.

Others that could be also fixed included also [`clippy::print_with_newline`](https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline) and [`clippy::cast_lossless`](https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless). Should I add them as well?

since most of it touches libsyntax...
r? @petrochenkov

5 years agoRollup merge of #62124 - matklad:without-with, r=petrochenkov
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:07 +0000 (23:01 +0200)]
Rollup merge of #62124 - matklad:without-with, r=petrochenkov

refactor lexer to use idiomatic borrowing

5 years agoRollup merge of #62106 - cramertj:test-await, r=centril
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:06 +0000 (23:01 +0200)]
Rollup merge of #62106 - cramertj:test-await, r=centril

Add more tests for async/await

I'll follow up with more of these, but here's an initial few.

r? @Centril

5 years agoRollup merge of #62102 - RalfJung:read, r=Centril
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:04 +0000 (23:01 +0200)]
Rollup merge of #62102 - RalfJung:read, r=Centril

call out explicitly that general read needs to be called with an initialized buffer

5 years agoRollup merge of #62076 - XAMPPRocky:master, r=XAMPPRocky
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:03 +0000 (23:01 +0200)]
Rollup merge of #62076 - XAMPPRocky:master, r=XAMPPRocky

Updated RELEASES.md for 1.36.0

[Rendered](https://github.com/XAMPPRocky/rust/blob/master/RELEASES.md)

r? @Mark-Simulacrum

cc @rust-lang/release

5 years agoRollup merge of #62067 - doctorn:await_diagnostic, r=matthewjasper
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:01 +0000 (23:01 +0200)]
Rollup merge of #62067 - doctorn:await_diagnostic, r=matthewjasper

Add suggestion for missing `.await` keyword

This commit adds a suggestion diagnostic for missing `.await`. In order to do this, the trait `Future` is promoted to a lang item.

Compiling code of the form:

```rust
#![feature(async_await)]

fn take_u32(x: u32) {}

async fn make_u32() -> u32 {
    22
}

async fn foo() {
    let x = make_u32();
    take_u32(x)
}

fn main() {}
```

Will now result in the suggestion:

```
error[E0308]: mismatched types
  --> src/main.rs:11:18
   |
11 |         take_u32(x)
   |                  ^
   |                  |
   |                  expected u32, found opaque type
   |                  help: consider using `.await` here: `x.await`
   |
   = note: expected type `u32`
              found type `impl std::future::Future`
```

This commit does not cover chained expressions and therefore only covers the case originally pointed out in #61076. Cases I can think of that still need to be covered:

- [ ] Return places for functions
- [ ] Field access
- [ ] Method invocation

I'm planning to submit PRs for each of these separately as and when I have figured them out.

5 years agoRollup merge of #62043 - Centril:remove-fnbox, r=cramertj
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:01:00 +0000 (23:01 +0200)]
Rollup merge of #62043 - Centril:remove-fnbox, r=cramertj

Remove `FnBox`

Remove `FnBox` since we now have `Box<dyn FnOnce>`.

Closes https://github.com/rust-lang/rust/issues/28796.

r? @cramertj

5 years agoRollup merge of #61878 - RalfJung:pin, r=Dylan-DPC
Mazdak Farrokhzad [Thu, 27 Jun 2019 21:00:58 +0000 (23:00 +0200)]
Rollup merge of #61878 - RalfJung:pin, r=Dylan-DPC

improve pinning projection docs

This tries to improve the explanation of structural pinning and pinning projections based on [this URLO thread](https://users.rust-lang.org/t/when-is-it-safe-to-move-a-member-value-out-of-a-pinned-future/28182).

Fixes https://github.com/rust-lang/rust/issues/61272.

5 years agoAuto merge of #62136 - lzutao:clippy-up, r=oli-obk
bors [Thu, 27 Jun 2019 14:30:33 +0000 (14:30 +0000)]
Auto merge of #62136 - lzutao:clippy-up, r=oli-obk

submodules: Update clippy from 8c80b65f to e3cb40e4

r? @Manishearth

5 years agoAdd suggestion for missing `.await` keyword
Nathan Corbyn [Wed, 19 Jun 2019 20:55:18 +0000 (21:55 +0100)]
Add suggestion for missing `.await` keyword

5 years agoUpdate RLS
Igor Matuszewski [Thu, 27 Jun 2019 11:41:00 +0000 (13:41 +0200)]
Update RLS

5 years agorustc: Retry SIGILL linker invocations
Alex Crichton [Thu, 27 Jun 2019 09:14:57 +0000 (02:14 -0700)]
rustc: Retry SIGILL linker invocations

We've seen quite a few issues with spurious illegal instructions getting
executed on OSX on CI recently. For whatever reason `cc` itself is
executing an illegal instruction and we're not really getting any other
information about what's happening. Since we're already retrying the
linker when it segfaults, let's just continue to retry everything and
automatically reinvoke the linker when it fails with an illegal instruction.

5 years agoAuto merge of #62147 - Centril:rollup-pigazoz, r=alexcrichton
bors [Thu, 27 Jun 2019 08:15:27 +0000 (08:15 +0000)]
Auto merge of #62147 - Centril:rollup-pigazoz, r=alexcrichton

[CI] Rollup of 5 pull requests

Successful merges:

 - #62140 (ci: Turn off PR builds on Travis)
 - #62141 (ci: Disable assertions in PR builds)
 - #62142 (ci: Switch official `try` builds to happen on Azure)
 - #62143 (ci: Publish toolstate changes from Azure)
 - #62145 (ci: Sync AppVeyor/Travis with Azure configuration)

Failed merges:

r? @ghost

5 years agosave-analysis: use buffered writes
Jeremy Fitzhardinge [Thu, 27 Jun 2019 00:22:39 +0000 (17:22 -0700)]
save-analysis: use buffered writes

Otherwise it ends up writing the file byte at a time, which can be very slow for large outputs.

5 years agoUse pointer::write_bytes for android sigemptyset
Josh Stone [Wed, 26 Jun 2019 23:27:54 +0000 (16:27 -0700)]
Use pointer::write_bytes for android sigemptyset

5 years agoAvoid mem::uninitialized() in std::sys::unix
Josh Stone [Wed, 26 Jun 2019 22:03:15 +0000 (15:03 -0700)]
Avoid mem::uninitialized() in std::sys::unix

For `libc` types that will be initialized in FFI calls, we can just use
`MaybeUninit` and then pass around raw pointers.

For `sun_path_offset()`, which really wants `offset_of`, all callers
have a real `sockaddr_un` available, so we can use that reference.

5 years agoUpdate miri
Yuki Okushi [Mon, 24 Jun 2019 23:59:55 +0000 (08:59 +0900)]
Update miri

5 years agoRemove outdated question_mark_macro_sep lint
Julien Cretin [Wed, 26 Jun 2019 18:34:12 +0000 (20:34 +0200)]
Remove outdated question_mark_macro_sep lint

5 years agoci: Disable x86_64-msvc-tools builder
Alex Crichton [Wed, 26 Jun 2019 18:13:08 +0000 (11:13 -0700)]
ci: Disable x86_64-msvc-tools builder

While we figure out what's wrong let's continue to land PRs

5 years agoUpdate books
Eric Huss [Wed, 26 Jun 2019 17:57:00 +0000 (10:57 -0700)]
Update books

5 years agoAdd regression test for MIR drop generation in async loops
Taylor Cramer [Wed, 26 Jun 2019 17:23:27 +0000 (10:23 -0700)]
Add regression test for MIR drop generation in async loops

Fixes #61986.

5 years agoremove old fixme
Mark Mansi [Wed, 26 Jun 2019 16:21:59 +0000 (11:21 -0500)]
remove old fixme

5 years agoDon't ICE on item in `.await` expression
Nathan Corbyn [Wed, 26 Jun 2019 12:48:41 +0000 (13:48 +0100)]
Don't ICE on item in `.await` expression

5 years agoHash force_pass_mode when config.mode == Pretty.
Mazdak Farrokhzad [Wed, 26 Jun 2019 12:32:23 +0000 (14:32 +0200)]
Hash force_pass_mode when config.mode == Pretty.

5 years agoFix clippy::precedence
Igor Matuszewski [Wed, 26 Jun 2019 12:14:27 +0000 (14:14 +0200)]
Fix clippy::precedence

5 years agoFix clippy::print_with_newline
Igor Matuszewski [Wed, 26 Jun 2019 12:11:40 +0000 (14:11 +0200)]
Fix clippy::print_with_newline

5 years agoFix clippy::redundant_closure
Igor Matuszewski [Wed, 26 Jun 2019 12:07:08 +0000 (14:07 +0200)]
Fix clippy::redundant_closure

5 years agoFix clippy::cast_losless
Igor Matuszewski [Wed, 26 Jun 2019 12:04:37 +0000 (14:04 +0200)]
Fix clippy::cast_losless

5 years agoFix clippy::redundant_field_names
Igor Matuszewski [Tue, 25 Jun 2019 21:22:45 +0000 (23:22 +0200)]
Fix clippy::redundant_field_names

5 years agoRollup merge of #62145 - alexcrichton:sync-azure, r=pietroalbini
Mazdak Farrokhzad [Wed, 26 Jun 2019 09:33:46 +0000 (11:33 +0200)]
Rollup merge of #62145 - alexcrichton:sync-azure, r=pietroalbini

ci: Sync AppVeyor/Travis with Azure configuration

Manually make sure that we do the same thing across all the services,
uncovering one spot where we needed to pass one more configure flag on
Azure but otherwise we're good to go!

5 years agoRollup merge of #62143 - alexcrichton:toolstate, r=pietroalbini
Mazdak Farrokhzad [Wed, 26 Jun 2019 09:33:44 +0000 (11:33 +0200)]
Rollup merge of #62143 - alexcrichton:toolstate, r=pietroalbini

ci: Publish toolstate changes from Azure

This commit moves toolstate publishing from Travis to Azure. We've been
testing on azure for some time now and this works by deleting the Travis
config and updating the credentials used on Azure.

5 years agoRollup merge of #62142 - alexcrichton:azure-try, r=pietroalbini
Mazdak Farrokhzad [Wed, 26 Jun 2019 09:33:43 +0000 (11:33 +0200)]
Rollup merge of #62142 - alexcrichton:azure-try, r=pietroalbini

ci: Switch official `try` builds to happen on Azure

This commit switches the `try` builers to officially happen on Azure
Pipelines instead of Travis where they're currently run. This also cuts
back the number of builders to just the two we run on Travis, leaving
expansion as a possible future extension.

5 years agoRollup merge of #62141 - alexcrichton:less-assertions, r=pietroalbini
Mazdak Farrokhzad [Wed, 26 Jun 2019 09:33:42 +0000 (11:33 +0200)]
Rollup merge of #62141 - alexcrichton:less-assertions, r=pietroalbini

ci: Disable assertions in PR builds

The PR builder on Azure currently takes 2.5h which is a bit long, so
this commit disables debug assertions and llvm assertions in an attempt
to speed up that builder and have PR builds come back a bit more
quickly. Other builders continue to enable debug assertions and test the
compiler there.

5 years agoRollup merge of #62140 - alexcrichton:less-pr-builds, r=pietroalbini
Mazdak Farrokhzad [Wed, 26 Jun 2019 09:33:41 +0000 (11:33 +0200)]
Rollup merge of #62140 - alexcrichton:less-pr-builds, r=pietroalbini

ci: Turn off PR builds on Travis

This commit turns off PR builds happening on Travis, instead entirely
relying on Azure for PR builds to succeed.

5 years agoci: Sync AppVeyor/Travis with Azure configuration
Alex Crichton [Wed, 26 Jun 2019 09:18:55 +0000 (02:18 -0700)]
ci: Sync AppVeyor/Travis with Azure configuration

Manually make sure that we do the same thing across all the services,
uncovering one spot where we needed to pass one more configure flag on
Azure but otherwise we're good to go!

5 years agoci: Publish toolstate changes from Azure
Alex Crichton [Wed, 26 Jun 2019 08:58:25 +0000 (01:58 -0700)]
ci: Publish toolstate changes from Azure

This commit moves toolstate publishing from Travis to Azure. We've been
testing on azure for some time now and this works by deleting the Travis
config and updating the credentials used on Azure.

5 years agoci: Switch official `try` builds to happen on Azure
Alex Crichton [Wed, 26 Jun 2019 08:54:26 +0000 (01:54 -0700)]
ci: Switch official `try` builds to happen on Azure

This commit switches the `try` builers to officially happen on Azure
Pipelines instead of Travis where they're currently run. This also cuts
back the number of builders to just the two we run on Travis, leaving
expansion as a possible future extension.

5 years agoci: Disable assertions in PR builds
Alex Crichton [Wed, 26 Jun 2019 08:38:08 +0000 (01:38 -0700)]
ci: Disable assertions in PR builds

The PR builder on Azure currently takes 2.5h which is a bit long, so
this commit disables debug assertions and llvm assertions in an attempt
to speed up that builder and have PR builds come back a bit more
quickly. Other builders continue to enable debug assertions and test the
compiler there.

5 years agoci: Turn of PR builds on Travis
Alex Crichton [Wed, 26 Jun 2019 08:34:17 +0000 (01:34 -0700)]
ci: Turn of PR builds on Travis

This commit turns off PR builds happening on Travis, instead entirely
relying on Azure for PR builds to succeed.

5 years agoAuto merge of #61872 - matthewjasper:refactor-mir-drop-gen, r=nikomatsakis
bors [Wed, 26 Jun 2019 04:42:34 +0000 (04:42 +0000)]
Auto merge of #61872 - matthewjasper:refactor-mir-drop-gen, r=nikomatsakis

Clean up MIR drop generation

* Don't assign twice to the destination of a `while` loop containing a `break` expression
* Use `as_temp` to evaluate statement expression
* Avoid consecutive `StorageLive`s for the condition of a `while` loop
* Unify `return`, `break` and `continue` handling, and move it to `scopes.rs`
* Make some of the `scopes.rs` internals private
* Don't use `Place`s that are always `Local`s in MIR drop generation

Closes #42371
Closes #61579
Closes #61731
Closes #61834
Closes #61910
Closes #62115

5 years agosubmodules: Update clippy from 8c80b65f to e3cb40e4
Lzu Tao [Wed, 26 Jun 2019 02:20:44 +0000 (02:20 +0000)]
submodules: Update clippy from 8c80b65f to e3cb40e4

5 years agoAuto merge of #62072 - eddyb:generator-memory-index, r=tmandry
bors [Wed, 26 Jun 2019 01:56:12 +0000 (01:56 +0000)]
Auto merge of #62072 - eddyb:generator-memory-index, r=tmandry

rustc: correctly transform memory_index mappings for generators.

Fixes #61793, closes #62011 (previous attempt at fixing #61793).

During #60187, I made the mistake of suggesting that the (re-)computation of `memory_index` in `ty::layout`, after generator-specific logic split/recombined fields, be done off of the `offsets` of those fields (which needed to be computed anyway), as opposed to the `memory_index`.

`memory_index` maps each field to its in-memory order index, which ranges over the same `0..n` values as the fields themselves, making it a bijective mapping, and more specifically a permutation (indeed, it's the permutation resulting from field reordering optimizations).

Each field has an unique "memory index", meaning a sort based on them, even an unstable one, will not put them in the wrong order. But offsets don't have that property, because of ZSTs (which do not increase the offset), so sorting based on the offset of fields alone can (and did) result in wrong orders.

Instead of going back to sorting based on (slices/subsets of) `memory_index`, or special-casing ZSTs to make sorting based on offsets produce the right results (presumably), as #62011 does, I opted to drop sorting altogether and focus on `O(n)` operations involving *permutations*:
* a permutation is easily inverted (see the `invert_mapping` `fn`)
  * an `inverse_memory_index` was already employed in other parts of the `ty::layout` code (that is, a mapping from memory order to field indices)
  * inverting twice produces the original permutation, so you can invert, modify, and invert again, if it's easier to modify the inverse mapping than the direct one
* you can modify/remove elements in a permutation, as long as the result remains dense (i.e. using every integer in `0..len`, without gaps)
  * for splitting a `0..n` permutation into disjoint `0..x` and `x..n` ranges, you can pick the elements based on a `i < x` / `i >= x` predicate, and for the latter, also subtract `x` to compact the range to `0..n-x`
  * in the general case, for taking an arbitrary subset of the permutation, you need a renumbering from that subset to a dense `0..subset.len()` - but notably, this is still `O(n)`!
* you can merge permutations, as long as the result remains disjoint (i.e. each element is unique)
  * for concatenating two `0..n` and `0..m` permutations, you can renumber the elements in the latter to `n..n+m`
* some of these operations can be combined, and an inverse mapping (be it a permutation or not) can still be used instead of a forward one by changing the "domain" of the loop performing the operation

I wish I had a nicer / more mathematical description of the recombinations involved, but my focus was to fix the bug (in a way which preserves information more directly than sorting would), so I may have missed potential changes in the surrounding generator layout code, that would make this all more straight-forward.

r? @tmandry

5 years agoUse `Local`s instead of `Place`s in MIR drop generation
Matthew Jasper [Sat, 15 Jun 2019 19:33:23 +0000 (20:33 +0100)]
Use `Local`s instead of `Place`s in MIR drop generation

5 years agoAdd StorageDead statements for `while` conditions
Matthew Jasper [Sat, 15 Jun 2019 18:55:21 +0000 (19:55 +0100)]
Add StorageDead statements for `while` conditions

5 years agoUnify `return`, `break` and `continue` handling
Matthew Jasper [Sat, 15 Jun 2019 16:37:19 +0000 (17:37 +0100)]
Unify `return`, `break` and `continue` handling

5 years agoAvoid checking if references implement drop
Matthew Jasper [Sat, 15 Jun 2019 09:11:15 +0000 (10:11 +0100)]
Avoid checking if references implement drop

5 years agoUse `as_temp` to evaluate statement expressions
Matthew Jasper [Sat, 15 Jun 2019 09:08:41 +0000 (10:08 +0100)]
Use `as_temp` to evaluate statement expressions

5 years agoFix incorrect double assignment in MIR for while loops
Matthew Jasper [Sat, 15 Jun 2019 09:08:20 +0000 (10:08 +0100)]
Fix incorrect double assignment in MIR for while loops

5 years agoUse f{32,64}::from_bits
Igor Matuszewski [Tue, 25 Jun 2019 21:08:10 +0000 (23:08 +0200)]
Use f{32,64}::from_bits

5 years agotweak wording
Ralf Jung [Tue, 25 Jun 2019 20:59:00 +0000 (22:59 +0200)]
tweak wording

5 years agocleanup: rename name_from to symbol_from
Aleksey Kladov [Tue, 25 Jun 2019 18:37:25 +0000 (21:37 +0300)]
cleanup: rename name_from to symbol_from

Lexer uses Symbols for a lot of stuff, not only for identifiers, so
the "name" terminology is just confusing.

5 years agoAdd more tests for async/await
Taylor Cramer [Tue, 25 Jun 2019 00:48:21 +0000 (17:48 -0700)]
Add more tests for async/await

5 years agoAuto merge of #62119 - Centril:rollup-el20wu0, r=Centril
bors [Tue, 25 Jun 2019 18:35:41 +0000 (18:35 +0000)]
Auto merge of #62119 - Centril:rollup-el20wu0, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #61814 (Fix an ICE with uninhabited consts)
 - #61987 (rustc: produce AST instead of HIR from `hir::lowering::Resolver` methods.)
 - #62055 (Fix error counting)
 - #62078 (Remove built-in derive macros `Send` and `Sync`)
 - #62085 (Add test for issue-38591)
 - #62091 (HirIdification: almost there)
 - #62096 (Implement From<Local> for Place and PlaceBase)

Failed merges:

r? @ghost

5 years agoUpdated RELEASES.md for 1.36.0
Erin Power [Sun, 23 Jun 2019 09:45:06 +0000 (11:45 +0200)]
Updated RELEASES.md for 1.36.0

Co-Authored-By: Taiki Endo <te316e89@gmail.com>
Co-Authored-By: Jonas Schievink <jonasschievink@gmail.com>
Co-Authored-By: Torbjørn Birch Moltu <t.b.moltu@lyse.net>
5 years agorefactor lexer to use idiomatic borrowing
Aleksey Kladov [Tue, 25 Jun 2019 18:02:19 +0000 (21:02 +0300)]
refactor lexer to use idiomatic borrowing

5 years agoRollup merge of #62096 - spastorino:impl-place-from, r=oli-obk,Centril
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:37 +0000 (17:15 +0200)]
Rollup merge of #62096 - spastorino:impl-place-from, r=oli-obk,Centril

Implement From<Local> for Place and PlaceBase

r? @oli-obk
More tiny bits of Place 2.0 moved into master

5 years agoRollup merge of #62091 - ljedrz:hiridification_almost_there, r=Zoxc
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:36 +0000 (17:15 +0200)]
Rollup merge of #62091 - ljedrz:hiridification_almost_there, r=Zoxc

HirIdification: almost there

I'm beginning to run out of stuff to HirIdify :wink:.

This time I targeted mainly `hir::map::{find, get_parent_node}`, but a few other bits got changed too.

r? @Zoxc

5 years agoRollup merge of #62085 - JohnTitor:add-test-for-issue-38591, r=Centril
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:34 +0000 (17:15 +0200)]
Rollup merge of #62085 - JohnTitor:add-test-for-issue-38591, r=Centril

Add test for issue-38591

Closes #38591

r? @pnkfelix

5 years agoRollup merge of #62078 - petrochenkov:nosendync2, r=varkor
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:33 +0000 (17:15 +0200)]
Rollup merge of #62078 - petrochenkov:nosendync2, r=varkor

Remove built-in derive macros `Send` and `Sync`

Closes https://github.com/rust-lang/rust/issues/62050

5 years agoRollup merge of #62055 - matthewjasper:fix-error-counting, r=pnkfelix
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:31 +0000 (17:15 +0200)]
Rollup merge of #62055 - matthewjasper:fix-error-counting, r=pnkfelix

Fix error counting

Count duplicate errors for `track_errors` and other error counting checks.
Add FIXMEs to make it clear that we should be moving away from this kind of logic.

Closes #61663

5 years agoRollup merge of #61987 - eddyb:hirless-resolver, r=petrochenkov
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:30 +0000 (17:15 +0200)]
Rollup merge of #61987 - eddyb:hirless-resolver, r=petrochenkov

rustc: produce AST instead of HIR from `hir::lowering::Resolver` methods.

This avoids synthesizing HIR nodes in `rustc_resolve`, and `rustc::hir::lowering` patching up the result after the fact (I suspect this is even more significant for @Zoxc's chages to arena-allocate the HIR).

r? @oli-obk

5 years agoRollup merge of #61814 - varkor:uninhabited-const-61744, r=oli-obk
Mazdak Farrokhzad [Tue, 25 Jun 2019 15:15:29 +0000 (17:15 +0200)]
Rollup merge of #61814 - varkor:uninhabited-const-61744, r=oli-obk

Fix an ICE with uninhabited consts

Fixes https://github.com/rust-lang/rust/issues/61744.

r? @oli-obk

5 years agoAuto merge of #60732 - jswrenn:arbitrary_enum_discriminant, r=pnkfelix
bors [Tue, 25 Jun 2019 15:12:11 +0000 (15:12 +0000)]
Auto merge of #60732 - jswrenn:arbitrary_enum_discriminant, r=pnkfelix

Implement arbitrary_enum_discriminant

Implements RFC rust-lang/rfcs#2363 (tracking issue #60553).

5 years agoUpdate new_debug_unreachable
Yuki Okushi [Tue, 25 Jun 2019 14:09:25 +0000 (23:09 +0900)]
Update new_debug_unreachable

5 years agoImplement From<Local> for Place and PlaceBase
Santiago Pastorino [Mon, 24 Jun 2019 15:46:09 +0000 (17:46 +0200)]
Implement From<Local> for Place and PlaceBase

5 years agorustc: produce AST instead of HIR from `hir::lowering::Resolver` methods.
Eduard-Mihai Burtescu [Thu, 20 Jun 2019 12:00:31 +0000 (15:00 +0300)]
rustc: produce AST instead of HIR from `hir::lowering::Resolver` methods.

5 years agoAuto merge of #61765 - Keruspe:rustbuild-cxx, r=alexcrichton
bors [Tue, 25 Jun 2019 12:07:19 +0000 (12:07 +0000)]
Auto merge of #61765 - Keruspe:rustbuild-cxx, r=alexcrichton

rustbuild: detect cxx for all targets

Replaces #61544
Fixes #59917

We need CXX to build llvm-libunwind which can be enabled for alltargets.
As we needed it for all hosts anyways, just move the detection so that it is ran for all targets (which contains all hosts) instead.

5 years agorustc: correctly transform memory_index mappings for generators.
Eduard-Mihai Burtescu [Sun, 23 Jun 2019 01:37:23 +0000 (04:37 +0300)]
rustc: correctly transform memory_index mappings for generators.

5 years agoAuto merge of #62094 - oli-obk:zst_intern, r=eddyb
bors [Tue, 25 Jun 2019 09:10:18 +0000 (09:10 +0000)]
Auto merge of #62094 - oli-obk:zst_intern, r=eddyb

 Don't ICE on mutable zst slices

fixes #62045

5 years agoFix an ICE with uninhabited consts
varkor [Tue, 25 Jun 2019 02:39:23 +0000 (03:39 +0100)]
Fix an ICE with uninhabited consts