]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoadd a preliminary existential test; not really enough
Niko Matsakis [Wed, 12 Jun 2019 15:50:28 +0000 (11:50 -0400)]
add a preliminary existential test; not really enough

5 years agopacify the mercilous tidy
Niko Matsakis [Wed, 12 Jun 2019 15:48:29 +0000 (11:48 -0400)]
pacify the mercilous tidy

long lines, trailing newlines

5 years agoremove outdated TODO markers
Niko Matsakis [Wed, 12 Jun 2019 15:48:08 +0000 (11:48 -0400)]
remove outdated TODO markers

These were left behind to remind me to cleanup the code -- but the
relevant cleanups were already done.

5 years agoexplain why pick-constraints can be an empty vector
Niko Matsakis [Wed, 12 Jun 2019 15:47:48 +0000 (11:47 -0400)]
explain why pick-constraints can be an empty vector

5 years agoadd a FIXME related to the non-free-region case
Niko Matsakis [Wed, 12 Jun 2019 15:16:59 +0000 (11:16 -0400)]
add a FIXME related to the non-free-region case

I don't think it would actually be harmful to just ignore such cases
but I'm inclined not to take chances.

5 years agoupdate the async-fn-multiple-lifetimes test
Niko Matsakis [Wed, 12 Jun 2019 14:47:04 +0000 (10:47 -0400)]
update the async-fn-multiple-lifetimes test

5 years agofix tests and remove outdated stderr files
Niko Matsakis [Wed, 12 Jun 2019 14:22:27 +0000 (10:22 -0400)]
fix tests and remove outdated stderr files

5 years agointegrate reverse graph and upper-bound computation
Niko Matsakis [Wed, 12 Jun 2019 14:22:07 +0000 (10:22 -0400)]
integrate reverse graph and upper-bound computation

5 years agoadd a `depth_first_search` helper function
Niko Matsakis [Tue, 11 Jun 2019 20:29:27 +0000 (16:29 -0400)]
add a `depth_first_search` helper function

5 years agointroduce a `VecGraph` abstraction that cheaply stores graphs
Niko Matsakis [Tue, 11 Jun 2019 17:40:24 +0000 (13:40 -0400)]
introduce a `VecGraph` abstraction that cheaply stores graphs

This is perhaps better than the linked list approach I was using
before. Lower memory overhead, Theta(N+E) storage. Does require a
sort. =)

5 years agoimplement the graph traits for SCC
Niko Matsakis [Tue, 11 Jun 2019 12:48:40 +0000 (08:48 -0400)]
implement the graph traits for SCC

5 years agoimprove tests with migration mode, mir mode
Niko Matsakis [Mon, 10 Jun 2019 21:22:02 +0000 (17:22 -0400)]
improve tests with migration mode, mir mode

5 years agoremove old error and add an explanation
Niko Matsakis [Mon, 10 Jun 2019 21:17:56 +0000 (17:17 -0400)]
remove old error and add an explanation

5 years agopreliminary integration of "pick constraints" into nll solver
Niko Matsakis [Fri, 7 Jun 2019 19:57:09 +0000 (15:57 -0400)]
preliminary integration of "pick constraints" into nll solver

5 years agoconstruct pick-constraints and give them to region inference
Niko Matsakis [Wed, 5 Jun 2019 23:33:29 +0000 (19:33 -0400)]
construct pick-constraints and give them to region inference

5 years agoimplement PickConstraintSet type
Niko Matsakis [Wed, 5 Jun 2019 23:07:15 +0000 (19:07 -0400)]
implement PickConstraintSet type

5 years agopass more than outlives constraints to constraint conversion
Niko Matsakis [Wed, 5 Jun 2019 14:21:31 +0000 (10:21 -0400)]
pass more than outlives constraints to constraint conversion

5 years ago[WIP] fix `Lift` impl for `Rc`
Niko Matsakis [Mon, 24 Jun 2019 20:06:17 +0000 (16:06 -0400)]
[WIP] fix `Lift` impl for `Rc`

5 years agorename `ConstraintSet` to `OutlivesConstraintSet`
Niko Matsakis [Wed, 5 Jun 2019 14:17:30 +0000 (10:17 -0400)]
rename `ConstraintSet` to `OutlivesConstraintSet`

5 years agopropagate the pick-constraints through queries
Niko Matsakis [Wed, 5 Jun 2019 09:58:08 +0000 (05:58 -0400)]
propagate the pick-constraints through queries

5 years agopass a `&mut QueryRegionConstraints` not just outlives constraints
Niko Matsakis [Wed, 5 Jun 2019 09:52:58 +0000 (05:52 -0400)]
pass a `&mut QueryRegionConstraints` not just outlives constraints

5 years agoremove deref impl and add an index impl
Niko Matsakis [Tue, 4 Jun 2019 22:05:23 +0000 (18:05 -0400)]
remove deref impl and add an index impl

The constraint set is going to be more than just a set of outlives
constraints.

5 years agorename `ConstraintIndex` to `OutlivesConstraintIndex`
Niko Matsakis [Tue, 4 Jun 2019 21:39:12 +0000 (17:39 -0400)]
rename `ConstraintIndex` to `OutlivesConstraintIndex`

5 years agointroduce `QueryRegionConstraints` struct
Niko Matsakis [Mon, 3 Jun 2019 22:25:21 +0000 (18:25 -0400)]
introduce `QueryRegionConstraints` struct

5 years agointroduce `QueryRegionConstraints` struct (no-op)
Niko Matsakis [Mon, 3 Jun 2019 21:39:52 +0000 (17:39 -0400)]
introduce `QueryRegionConstraints` struct (no-op)

5 years agorename `QueryRegionConstraint` to `QueryOutlivesConstraint`
Niko Matsakis [Mon, 3 Jun 2019 21:24:30 +0000 (17:24 -0400)]
rename `QueryRegionConstraint` to `QueryOutlivesConstraint`

5 years agoenforce and report pick-constraint errors
Niko Matsakis [Mon, 3 Jun 2019 20:31:44 +0000 (16:31 -0400)]
enforce and report pick-constraint errors

The error message here is not great.

5 years agointegrate pick constraints into lexical solver more completely
Niko Matsakis [Mon, 3 Jun 2019 19:54:21 +0000 (15:54 -0400)]
integrate pick constraints into lexical solver more completely

5 years agorename from "in constraint" to "pick constraint"
Niko Matsakis [Mon, 3 Jun 2019 15:58:57 +0000 (11:58 -0400)]
rename from "in constraint" to "pick constraint"

5 years agoadd some tests, currently ICE-ing
Niko Matsakis [Sat, 1 Jun 2019 11:01:49 +0000 (07:01 -0400)]
add some tests, currently ICE-ing

5 years agomake `dup_vec` optional
Niko Matsakis [Fri, 31 May 2019 18:30:06 +0000 (14:30 -0400)]
make `dup_vec` optional

5 years agolexical_region_resolve: rustfmt
Niko Matsakis [Fri, 31 May 2019 18:29:43 +0000 (14:29 -0400)]
lexical_region_resolve: rustfmt

5 years agointroduce an "in" constraint instead of error
Niko Matsakis [Thu, 30 May 2019 14:36:35 +0000 (10:36 -0400)]
introduce an "in" constraint instead of error

5 years agointroduce `constrain_regions` helper
Niko Matsakis [Tue, 28 May 2019 21:02:07 +0000 (17:02 -0400)]
introduce `constrain_regions` helper

5 years agoopaque_types/mod.rs: rustfmt
Niko Matsakis [Fri, 28 Jun 2019 20:47:53 +0000 (16:47 -0400)]
opaque_types/mod.rs: rustfmt

5 years agoAuto merge of #61922 - tmandry:moar-generator-optimization, r=matthewjasper
bors [Tue, 2 Jul 2019 12:25:00 +0000 (12:25 +0000)]
Auto merge of #61922 - tmandry:moar-generator-optimization, r=matthewjasper

Don't store locals that have been moved from in generators

This avoids reserving storage in generators for locals that are moved
out of (and not re-initialized) prior to yield points. Fixes #59123.

This adds a new dataflow analysis, `RequiresStorage`, to determine whether the storage of a local can be destroyed without being observed by the program. The rules are:

1. StorageLive(x) => mark x live
2. StorageDead(x) => mark x dead
3. If a local is moved from, _and has never had its address taken_, mark it dead
4. If (any part of) a local is initialized, mark it live'

This is used to determine whether to save a local in the generator object at all, as well as which locals can be overlapped in the generator layout.

Here's the size in bytes of all testcases included in the change, before and after the change:

async fn test    |Size before |Size after
-----------------|------------|----------
single           | 1028       | 1028
single_with_noop | 2056       | 1032
joined           | 5132       | 3084
joined_with_noop | 8208       | 3084

generator test              |Size before |Size after
----------------------------|------------|----------
move_before_yield           | 1028       | 1028
move_before_yield_with_noop | 2056       | 1032
overlap_move_points         | 3080       | 2056

## Future work

Note that there is a possible extension to this optimization, which modifies rule 3 to read: "If a local is moved from, _**and either has never had its address taken, or is Freeze and has never been mutably borrowed**_, mark it dead." This was discussed at length in #59123 and then #61849. Because this would cause some behavior to be UB which was not UB before, it's a step that needs to be taken carefully.

A more immediate priority for me is inlining `std::mem::size_of_val(&x)` so it becomes apparent that the address of `x` is not taken. This way, using `size_of_val` to look at the size of your inner futures does not affect the size of your outer future.

cc @cramertj @eddyb @Matthias247 @nikomatsakis @RalfJung @Zoxc

5 years agoAuto merge of #61871 - Zoxc:no-lift-branch, r=eddyb
bors [Tue, 2 Jul 2019 08:09:15 +0000 (08:09 +0000)]
Auto merge of #61871 - Zoxc:no-lift-branch, r=eddyb

Don't use lift to detect local types

This overlaps with https://github.com/rust-lang/rust/pull/61392.

r? @eddyb

5 years agoAuto merge of #62279 - pietroalbini:fix-azure-crlf, r=alexcrichton
bors [Mon, 1 Jul 2019 22:33:54 +0000 (22:33 +0000)]
Auto merge of #62279 - pietroalbini:fix-azure-crlf, r=alexcrichton

ci: explicitly disable CRLF conversion on Windows

The Azure image enables CRLF conversion on Windows builders, but that caused regressions both in our test suite (the miri test suite broke) and in the ecosystem, since we started shipping install scripts with CRLF endings instead of the old LF. The [Godbolt Compiler Explorer](https://godbolt.org/) is one such case of breakage.

This adds a step to the build explicitly disabling the conversion before the repository is checked out.

r? @alexcrichton
cc @gnzlbg

5 years agoci: explicitly disable CRLF conversion on Windows
Pietro Albini [Mon, 1 Jul 2019 19:57:08 +0000 (21:57 +0200)]
ci: explicitly disable CRLF conversion on Windows

The Azure image enables CRLF conversion on Windows builders, but that
caused regressions both in our test suite (the miri test suite broke)
and in the ecosystem, since we started shipping install scripts with
CRLF endings instead of the old LF. The Godbolt Compiler Explorer is one
such case of breakage.

This adds a step to the build explicitly disabling the conversion before
the repository is checked out.

5 years agoClean up extra lifetime, add assertions
Tyler Mandry [Mon, 1 Jul 2019 19:19:21 +0000 (12:19 -0700)]
Clean up extra lifetime, add assertions

5 years agoAuto merge of #62267 - GuillaumeGomez:revert-implicit-option-return, r=Centril
bors [Mon, 1 Jul 2019 18:49:30 +0000 (18:49 +0000)]
Auto merge of #62267 - GuillaumeGomez:revert-implicit-option-return, r=Centril

Revert "implicit `Option`-returning doctests"

Reverts #61279 as discussed in #61360.

cc @Centril

5 years agoAuto merge of #62247 - pietroalbini:finish-azure-migration, r=Mark-Simulacrum
bors [Mon, 1 Jul 2019 15:14:16 +0000 (15:14 +0000)]
Auto merge of #62247 - pietroalbini:finish-azure-migration, r=Mark-Simulacrum

ci: finish the migration to azure

This moves to azure the last builders as we discussed on Discord last night.

r? @alexcrichton

5 years agobump miri to fix line endings on azure
Pietro Albini [Mon, 1 Jul 2019 13:30:27 +0000 (15:30 +0200)]
bump miri to fix line endings on azure

5 years agoUpdate RLS to disable spurious client_find_definitions test
Igor Matuszewski [Sun, 30 Jun 2019 23:36:43 +0000 (01:36 +0200)]
Update RLS to disable spurious client_find_definitions test

Since switching CI to Azure Pipelines it seems that this test seems
to fail more consistently, so let's disable that for now. It helps
that we have less than a week before release - we disallow PRs that
break the tools to land in this period, so this makes landing critical
PRs smoother  now.

r? @alexcrichton

5 years agoci: finish the migration to azure
Pietro Albini [Sun, 30 Jun 2019 17:12:56 +0000 (19:12 +0200)]
ci: finish the migration to azure

5 years agoRevert "implicit `Option`-returning doctests"
Guillaume Gomez [Mon, 1 Jul 2019 14:41:37 +0000 (16:41 +0200)]
Revert "implicit `Option`-returning doctests"

This reverts commit 6bb6c001be34d0932a014df981ee18f165c43374.

5 years agoAuto merge of #62253 - Centril:rollup-115uuuq, r=Centril
bors [Mon, 1 Jul 2019 06:41:48 +0000 (06:41 +0000)]
Auto merge of #62253 - Centril:rollup-115uuuq, r=Centril

Rollup of 8 pull requests

Successful merges:

 - #62062 (Use a more efficient iteration order for forward dataflow)
 - #62063 (Use a more efficient iteration order for backward dataflow)
 - #62224 (rustdoc: remove unused derives and variants)
 - #62228 (Extend the #[must_use] lint to boxed types)
 - #62235 (Extend the `#[must_use]` lint to arrays)
 - #62239 (Fix a typo)
 - #62241 (Always parse 'async unsafe fn' + properly ban in 2015)
 - #62248 (before_exec actually will only get deprecated with 1.37)

Failed merges:

r? @ghost

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 agoRollup merge of #62248 - RalfJung:release-notes, r=Mark-Simulacrum
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:32 +0000 (21:57 +0200)]
Rollup merge of #62248 - RalfJung:release-notes, r=Mark-Simulacrum

before_exec actually will only get deprecated with 1.37

Not sure if we usually fix old release notes, but I just found this when scrolling over them.

5 years agoRollup merge of #62241 - Centril:fix-async-unsafe-order, r=petrochenkov
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:30 +0000 (21:57 +0200)]
Rollup merge of #62241 - Centril:fix-async-unsafe-order, r=petrochenkov

Always parse 'async unsafe fn' + properly ban in 2015

Parse `async unsafe fn` not `unsafe async fn` in implementations. We also take the opportunity to properly ban `async fn` in Rust 2015 when they are inside implementations.

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

cc https://github.com/rust-lang/rust/pull/61319, https://github.com/rust-lang/rust/issues/62121, and https://github.com/rust-lang/rust/issues/62149.

r? @petrochenkov

5 years agoRollup merge of #62239 - lcolaholicl:lcolaholicl-patch-1, r=kennytm
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:29 +0000 (21:57 +0200)]
Rollup merge of #62239 - lcolaholicl:lcolaholicl-patch-1, r=kennytm

Fix a typo

The definition of 京 seems to be capital, but not capitol.
[reference](https://en.wiktionary.org/wiki/%E4%BA%AC#Etymology_1)
[another reference](https://jisho.org/word/%E4%BA%AC)

5 years agoRollup merge of #62235 - varkor:must_use-adt-components, r=Centril
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:28 +0000 (21:57 +0200)]
Rollup merge of #62235 - varkor:must_use-adt-components, r=Centril

Extend the `#[must_use]` lint to arrays

Based on top of https://github.com/rust-lang/rust/pull/62228.

r? @Centril

5 years agoRollup merge of #62228 - varkor:must_use-trait-in-box, r=Centril
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:27 +0000 (21:57 +0200)]
Rollup merge of #62228 - varkor:must_use-trait-in-box, r=Centril

Extend the #[must_use] lint to boxed types

Fixes https://github.com/rust-lang/rust/issues/55506#issuecomment-506940181 (cc @Nemo157).

This should have been included as part of https://github.com/rust-lang/rust/pull/55663, but was overlooked.

5 years agoRollup merge of #62224 - euclio:remove-derives, r=GuillaumeGomez
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:25 +0000 (21:57 +0200)]
Rollup merge of #62224 - euclio:remove-derives, r=GuillaumeGomez

rustdoc: remove unused derives and variants

Though many structs in rustdoc derive `RustcEncodable` and `RustcDecodable`, the impls do not appear to be used by the crate or its dependents. Removing them revealed some enum variants that are never constructed, too.

r? @GuillaumeGomez

5 years agoRollup merge of #62063 - ecstatic-morse:dataflow-backward-order, r=nagisa
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:24 +0000 (21:57 +0200)]
Rollup merge of #62063 - ecstatic-morse:dataflow-backward-order, r=nagisa

Use a more efficient iteration order for backward dataflow

This applies the same basic principle as #62062 to the reverse dataflow analysis used to compute liveness information. It is functionally equivalent, except that post-order is used instead of reverse post-order.

In the long-term, `BitDenotation` should probably be extended to support both forward and backward dataflow, but there's some more work needed to get to that point.

5 years agoRollup merge of #62062 - ecstatic-morse:dataflow-order, r=nagisa
Mazdak Farrokhzad [Sun, 30 Jun 2019 19:57:22 +0000 (21:57 +0200)]
Rollup merge of #62062 - ecstatic-morse:dataflow-order, r=nagisa

Use a more efficient iteration order for forward dataflow

Currently, dataflow begins by visiting each block in order of ID (`BasicBlock(0)`, `BasicBlock(1)`, etc.). This PR changes that initial iteration to reverse post-order (see [this blog post](https://eli.thegreenplace.net/2015/directed-graph-traversal-orderings-and-applications-to-data-flow-analysis/#data-flow-analysis) for more info). This ensures that the effects of all predecessors will be applied before a basic block is visited if the CFG has no back-edges, and should result in less total iterations even when back-edges exist. This should not change the results of dataflow analysis.

The current ordering for basic blocks may be pretty close to RPO already--`BasicBlock(0)` is already the start block--in which case the cost of doing the traversal up front will outweigh the efficiency gains.
A perf run is needed to check this.

r? @pnkfelix (I think).

5 years agoExtend #[must_use] lint to arrays
varkor [Sat, 29 Jun 2019 15:23:15 +0000 (16:23 +0100)]
Extend #[must_use] lint to arrays

5 years agoUpdate miri
varkor [Sun, 30 Jun 2019 17:18:44 +0000 (18:18 +0100)]
Update miri

5 years agoFix run-pass tests
varkor [Sat, 29 Jun 2019 15:51:44 +0000 (16:51 +0100)]
Fix run-pass tests

5 years agoImprove error messages for boxed trait objects in tuples
varkor [Sat, 29 Jun 2019 13:57:12 +0000 (14:57 +0100)]
Improve error messages for boxed trait objects in tuples

5 years agoExtend the #[must_use] lint to boxed types
varkor [Sat, 29 Jun 2019 12:53:46 +0000 (13:53 +0100)]
Extend the #[must_use] lint to boxed types

5 years agobefore_exec actually will only get deprecated with 1.37
Ralf Jung [Sun, 30 Jun 2019 16:29:39 +0000 (18:29 +0200)]
before_exec actually will only get deprecated with 1.37

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 agoAlways parse 'async unsafe fn' + properly ban in 2015.
Mazdak Farrokhzad [Sat, 29 Jun 2019 19:38:26 +0000 (21:38 +0200)]
Always parse 'async unsafe fn' + properly ban in 2015.

5 years agofix the same typo in doctest
lcolaholicl [Sat, 29 Jun 2019 17:46:45 +0000 (02:46 +0900)]
fix the same typo in doctest

5 years agoFix a typo
lcolaholicl [Sat, 29 Jun 2019 17:02:03 +0000 (02:02 +0900)]
Fix a typo
Fix a typo in `libcore/char/methods.rs`

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 agoUse RequiresStorage to determine which locals can overlap
Tyler Mandry [Sat, 29 Jun 2019 01:41:53 +0000 (18:41 -0700)]
Use RequiresStorage to determine which locals can overlap

5 years agoRemove Clone requirement
Tyler Mandry [Wed, 26 Jun 2019 21:08:33 +0000 (14:08 -0700)]
Remove Clone requirement

5 years agoAdd size tests for moved locals in generators
Tyler Mandry [Fri, 21 Jun 2019 01:06:40 +0000 (18:06 -0700)]
Add size tests for moved locals in generators

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