]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoFix subst error for consts in wfcheck
varkor [Fri, 3 May 2019 13:42:32 +0000 (14:42 +0100)]
Fix subst error for consts in wfcheck

5 years agoFix subst error for consts in astconv
varkor [Fri, 3 May 2019 13:42:04 +0000 (14:42 +0100)]
Fix subst error for consts in astconv

5 years agoImprove subst error when parameter kinds mismatch
varkor [Fri, 3 May 2019 13:41:47 +0000 (14:41 +0100)]
Improve subst error when parameter kinds mismatch

5 years agoAuto merge of #60117 - sunfishcode:wasi-os, r=sunfishcode
bors [Sat, 4 May 2019 10:22:05 +0000 (10:22 +0000)]
Auto merge of #60117 - sunfishcode:wasi-os, r=sunfishcode

Categorize WASI as an "OS" rather than as an "environment".

This distinction is fairly abstract, but in practice, the main advantage
here is that LLVM's triple code considers WASI to be an OS, so this
makes rustc agree with that.

5 years agoAuto merge of #60537 - Centril:rollup-42jxz82, r=Centril
bors [Sat, 4 May 2019 07:40:13 +0000 (07:40 +0000)]
Auto merge of #60537 - Centril:rollup-42jxz82, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #60429 (Account for paths in incorrect pub qualifier help)
 - #60449 (Constrain all regions in the concrete type for an opaque type)
 - #60486 (Place related refactors)
 - #60513 (Remove -Z borrowck=compare flag)
 - #60516 (Remove TypeckMir)
 - #60517 (Reword casting message)
 - #60520 (Add rustfmt toml)
 - #60521 (Migrate tidy to rust 2018 edition)
 - #60527 (Fix async fn lowering ICE with APIT.)

Failed merges:

r? @ghost

5 years agoRollup merge of #60527 - davidtwco:issue-60518, r=cramertj
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:34 +0000 (09:21 +0200)]
Rollup merge of #60527 - davidtwco:issue-60518, r=cramertj

Fix async fn lowering ICE with APIT.

Fixes #60518.

This PR fixes an ICE where simple bindings (which aren't replaced with replacement arguments during async fn lowering) were not being visited in the def collector and thus caused an ICE during HIR lowering for types that use their `DefId` at that point - such as `impl Trait`.

r? @cramertj

5 years agoRollup merge of #60521 - rasendubi:tidy-2018-edition, r=Centril
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:32 +0000 (09:21 +0200)]
Rollup merge of #60521 - rasendubi:tidy-2018-edition, r=Centril

Migrate tidy to rust 2018 edition

cc @Centril

5 years agoRollup merge of #60520 - matklad:rustfmt-all-the-new-things, r=Centril
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:31 +0000 (09:21 +0200)]
Rollup merge of #60520 - matklad:rustfmt-all-the-new-things, r=Centril

Add rustfmt toml

This commit adds an rustfmt.toml for using for **new** code.
Old code should continut to use old style, until we put automated
style checks in place.

See
https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81
for the reason why we deviate from the default formatting. The TL;DR
is that currently compiler uses a pretty condensed style of code, and
default settings both create a huge diff and inflate the number of
lines. use_small_heuristics=Max fixes that.

version=Two is required for bug-fixes, which technically can't be made
to the stable first version

cc @Centril: I guess adding config file with agreed-upon formatting doesn't hurt :-)

EDIT: Zullip discussion: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/x.2Epy.20fmt

5 years agoRollup merge of #60517 - estebank:wording, r=davidtwco
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:29 +0000 (09:21 +0200)]
Rollup merge of #60517 - estebank:wording, r=davidtwco

Reword casting message

r? @davidtwco

5 years agoRollup merge of #60516 - JohnTitor:remove-typeck, r=matthewjasper
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:27 +0000 (09:21 +0200)]
Rollup merge of #60516 - JohnTitor:remove-typeck, r=matthewjasper

Remove TypeckMir

Fixes #60422

r? @matthewjasper

5 years agoRollup merge of #60513 - chrisvittal:remove-borrowck-compare, r=matthewjasper
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:26 +0000 (09:21 +0200)]
Rollup merge of #60513 - chrisvittal:remove-borrowck-compare, r=matthewjasper

Remove -Z borrowck=compare flag

This is the start of the work that needs to be done on #59193. It just removes the flag and updates
the tests.

r? @matthewjasper

5 years agoRollup merge of #60486 - spastorino:place-related-refactors, r=oli-obk
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:24 +0000 (09:21 +0200)]
Rollup merge of #60486 - spastorino:place-related-refactors, r=oli-obk

Place related refactors

Meanwhile I was working on Place 2 I'm finding some little things that I had on my branch but preferred to land a separate PR for things that are simpler to merge.

r? @oli-obk

5 years agoRollup merge of #60449 - matthewjasper:impl-trait-outlives, r=pnkfelix
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:23 +0000 (09:21 +0200)]
Rollup merge of #60449 - matthewjasper:impl-trait-outlives, r=pnkfelix

Constrain all regions in the concrete type for an opaque type

`push_outlives_components` skips some regions in a type, notably the signature
of a closure is ignored. Most of the time this is OK, but for opaque types the
concrete type is used when checking auto-trait bounds in other functions.

cc @nikomatsakis @pnkfelix

Closes #57464
Closes #60127

5 years agoRollup merge of #60429 - estebank:pub-path, r=michaelwoerister
Mazdak Farrokhzad [Sat, 4 May 2019 07:21:21 +0000 (09:21 +0200)]
Rollup merge of #60429 - estebank:pub-path, r=michaelwoerister

Account for paths in incorrect pub qualifier help

Handle case where incorrect pub qualifier with a mod path is used and provide the same help given for all other incorrect qualifiers by making the `pub(crate)` parse check more specific.

5 years agoBump libc dependency to 0.2.54.
Dan Gohman [Fri, 3 May 2019 13:43:25 +0000 (06:43 -0700)]
Bump libc dependency to 0.2.54.

5 years agoCategorize WASI as an "OS" rather than as an "environment".
Dan Gohman [Fri, 19 Apr 2019 16:59:35 +0000 (09:59 -0700)]
Categorize WASI as an "OS" rather than as an "environment".

This distinction is fairly abstract, but in practice, the main advantage
here is that LLVM's triple code considers WASI to be an OS, so this
makes rustc agree with that.

5 years agoAuto merge of #59897 - tmandry:variantful-generators, r=eddyb
bors [Sat, 4 May 2019 03:18:14 +0000 (03:18 +0000)]
Auto merge of #59897 - tmandry:variantful-generators, r=eddyb

Multi-variant layouts for generators

This allows generators to overlap fields using variants, but doesn't do any such overlapping yet. It creates one variant for every state of the generator (unresumed, returned, panicked, plus one for every yield), and puts every stored local in each of the yield-point variants.

Required for optimizing generator layouts (#52924).

There was quite a lot of refactoring needed for this change. I've done my best in later commits to eliminate assumptions in the code that only certain kinds of types are multi-variant, and to centralize knowledge of the inner mechanics of generators in as few places as possible.

This change also emits debuginfo about the fields contained in each variant, as well as preserving debuginfo about stored locals while running in the generator.

Also, fixes #59972.

Future work:
- Use this change for an optimization pass that actually overlaps locals within the generator struct (#52924)
- In the type layout fields, don't include locals that are uninitialized for a particular variant, so miri and UB sanitizers can check our memory (see https://github.com/rust-lang/rust/issues/59972#issuecomment-483058172)
- Preserve debuginfo scopes across generator yield points

5 years agoAddress review comments
Tyler Mandry [Fri, 3 May 2019 23:11:39 +0000 (16:11 -0700)]
Address review comments

5 years agoAuto merge of #60462 - eddyb:def-1-a-mere-resolution, r=petrochenkov
bors [Fri, 3 May 2019 23:11:17 +0000 (23:11 +0000)]
Auto merge of #60462 - eddyb:def-1-a-mere-resolution, r=petrochenkov

rustc: factor out most of hir::def::Def's variants into DefKind, and rename to Res.

The first two commits are about introducing `DefKind`, both to simplify/orthogonalize `hir::def::Def`, and to allow reasoning about the kind of a definition without dealing with the redundant `DefId`.
(There are likely more changes to be made, such as adding enough `DefKind` variants for `tcx.def_kind(def_id)` to return just `DefKind`, not `Option<DefKind>`, but this is pretty big as-is)

The third commit frees up the `Def` name (which we may want to use in the future for "definitions", in the sense of "entities with a `DefId`") by renaming `hir::def::Def` to `Res` ("resolution").
IMO this fits, as it represents all the possible name resolution results, not just "definitions (with a `DefId`)".

Quick examples:
```rust
// Before:
if tcx.describe_def(def_id) == Some(Def::Struct(def_id)) {...}
if let Def::Struct(def_id) = path.def {...}
```
```rust
// After:
if tcx.def_kind(def_id) == Some(DefKind::Struct) {...}
if let Res::Def(DefKind::Struct, def_id) = path.res {...}
```

r? @petrochenkov cc @rust-lang/compiler

5 years agoSplit out debuginfo from type info in MIR GeneratorLayout
Tyler Mandry [Fri, 3 May 2019 23:03:05 +0000 (16:03 -0700)]
Split out debuginfo from type info in MIR GeneratorLayout

5 years agoFix async fn lowering ICE with APIT.
David Wood [Fri, 3 May 2019 21:36:35 +0000 (22:36 +0100)]
Fix async fn lowering ICE with APIT.

This commit fixes an ICE where simple bindings (which aren't replaced
with replacement arguments during async fn lowering) were not being
visited in the def collector and thus caused an ICE during HIR lowering
for types that use their `DefId` at that point - such as `impl Trait`.

5 years agoUpdate help message
Christopher Vittal [Fri, 3 May 2019 21:34:17 +0000 (17:34 -0400)]
Update help message

5 years agoMake variant_fields inner an IndexVec
Tyler Mandry [Fri, 3 May 2019 21:25:22 +0000 (14:25 -0700)]
Make variant_fields inner an IndexVec

5 years agorustc: rename hir::def::Def to Res (short for "resolution").
Eduard-Mihai Burtescu [Sat, 20 Apr 2019 16:36:05 +0000 (19:36 +0300)]
rustc: rename hir::def::Def to Res (short for "resolution").

5 years agorustc: use DefKind instead of Def, where possible.
Eduard-Mihai Burtescu [Sat, 20 Apr 2019 16:46:19 +0000 (19:46 +0300)]
rustc: use DefKind instead of Def, where possible.

5 years agorustc: factor most DefId-containing variants out of Def and into DefKind.
Eduard-Mihai Burtescu [Sat, 20 Apr 2019 15:26:26 +0000 (18:26 +0300)]
rustc: factor most DefId-containing variants out of Def and into DefKind.

5 years agotidy: Extract `let mut part` out of `parts` block in `version.rs`
Alexey Shmalko [Fri, 3 May 2019 19:45:59 +0000 (22:45 +0300)]
tidy: Extract `let mut part` out of `parts` block in `version.rs`

5 years agoAuto merge of #60496 - jethrogb:jb/address-integer-overflow, r=alexcrichton
bors [Fri, 3 May 2019 19:42:13 +0000 (19:42 +0000)]
Auto merge of #60496 - jethrogb:jb/address-integer-overflow, r=alexcrichton

Fix potential integer overflow in SGX memory range calculation.

Thanks to Eduard Marin and David Oswald at the University of Burmingham, and Jo Van Bulck at KU Leuven for discovering this issue.

5 years agoFix test
Yuki Okushi [Fri, 3 May 2019 19:24:32 +0000 (04:24 +0900)]
Fix test

5 years agoMigrate tidy to rust 2018 edition
Alexey Shmalko [Fri, 3 May 2019 19:19:24 +0000 (22:19 +0300)]
Migrate tidy to rust 2018 edition

5 years agoAdd rustfmt toml
Aleksey Kladov [Fri, 3 May 2019 18:35:21 +0000 (21:35 +0300)]
Add rustfmt toml

This commit adds an rustfmt.toml for using for **new** code.
Old code should continut to use old style, until we put automated
style checks in place.

See
https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81
for the reason why we deviate from the default formatting. The TL;DR
is that currently compiler uses a pretty condensed style of code, and
default settings both create a huge diff and inflate the number of
lines. use_small_heuristics=Max fixes that.

version=Two is required for bug-fixes, which technically can't be made
to the stable first version

5 years agoReword casting message
Esteban Küber [Fri, 3 May 2019 17:41:26 +0000 (10:41 -0700)]
Reword casting message

5 years agoRemove TypeckMir
Yuki Okushi [Fri, 3 May 2019 17:24:42 +0000 (02:24 +0900)]
Remove TypeckMir

5 years agoAuto merge of #60510 - Centril:rollup-gsndjbp, r=Centril
bors [Fri, 3 May 2019 15:10:16 +0000 (15:10 +0000)]
Auto merge of #60510 - Centril:rollup-gsndjbp, r=Centril

Rollup of 12 pull requests

Successful merges:

 - #59928 (Make deprecation lint `ambiguous_associated_items` deny-by-default)
 - #60220 (report fatal errors during doctest parsing)
 - #60373 (Tidy: ensure lang features are sorted by since)
 - #60388 (Disallow non-explicit elided lifetimes in async fn)
 - #60393 ( Do not suggest incorrect syntax on pattern type error due to borrow)
 - #60401 (Rename `RUST_LOG` to `RUSTC_LOG`)
 - #60409 (Require a trait in the bounds of existential types)
 - #60455 (Resolve match arm ty when arms diverge)
 - #60457 (Const prop refactoring)
 - #60467 (Avoid repeated interning of static strings.)
 - #60478 (minor compiler doc tweaks)
 - #60501 (Propagate mutability from arguments to local bindings in async fn)

Failed merges:

r? @ghost

5 years agoRollup merge of #60501 - taiki-e:async-await-mutable-arguments, r=cramertj
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:09 +0000 (16:25 +0200)]
Rollup merge of #60501 - taiki-e:async-await-mutable-arguments, r=cramertj

Propagate mutability from arguments to local bindings in async fn

Fixes #60498

cc @nikomatsakis
r? @davidtwco

5 years agoRollup merge of #60478 - euclio:doc-fixes, r=cramertj
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:08 +0000 (16:25 +0200)]
Rollup merge of #60478 - euclio:doc-fixes, r=cramertj

minor compiler doc tweaks

5 years agoRollup merge of #60467 - nnethercote:less-symbol-interning, r=davidtwco
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:06 +0000 (16:25 +0200)]
Rollup merge of #60467 - nnethercote:less-symbol-interning, r=davidtwco

Avoid repeated interning of static strings.

`file_metadata_raw` interns the strings `"<unknown>"` and `""` very
frequently. This commit avoids that, which reduces the number of symbols
interned significantly and reduces instruction counts by up to 0.5% on
some workloads.

5 years agoRollup merge of #60457 - wesleywiser:const_prop_refactoring, r=oli-obk
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:05 +0000 (16:25 +0200)]
Rollup merge of #60457 - wesleywiser:const_prop_refactoring, r=oli-obk

Const prop refactoring

This is rebased on top of #60428 so only the top commit is new.

This is the refactoring to remove the `mir` field from `ConstPropagator` which is necessary before we can begin to actually propagate constants.

r? @oli-obk

5 years agoRollup merge of #60455 - estebank:resolve-match-arm-ty, r=davidtwco
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:04 +0000 (16:25 +0200)]
Rollup merge of #60455 - estebank:resolve-match-arm-ty, r=davidtwco

Resolve match arm ty when arms diverge

Fix #58695.

5 years agoRollup merge of #60409 - JohnTitor:error-for-existential-type, r=oli-obk
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:02 +0000 (16:25 +0200)]
Rollup merge of #60409 - JohnTitor:error-for-existential-type, r=oli-obk

Require a trait in the bounds of existential types

Fixes #53090

r? @oli-obk

5 years agoRollup merge of #60401 - JohnTitor:rename-log, r=davidtwco
Mazdak Farrokhzad [Fri, 3 May 2019 14:25:00 +0000 (16:25 +0200)]
Rollup merge of #60401 - JohnTitor:rename-log, r=davidtwco

Rename `RUST_LOG` to `RUSTC_LOG`

cc: #57985

I think we should also change these submodules:

- rustc-guide
- Cargo (rename to `CARGO_LOG`, cc: https://github.com/rust-lang/cargo/pull/6605, https://github.com/rust-lang/cargo/issues/6189)
- miri
- rls
- rustfmt

r? @davidtwco

5 years agoRollup merge of #60393 - estebank:pat-sugg, r=oli-obk
Mazdak Farrokhzad [Fri, 3 May 2019 14:24:59 +0000 (16:24 +0200)]
Rollup merge of #60393 - estebank:pat-sugg, r=oli-obk

 Do not suggest incorrect syntax on pattern type error due to borrow

Fix #55174.

5 years agoRollup merge of #60388 - cramertj:elided-lifetime-async, r=nikomatsakis
Mazdak Farrokhzad [Fri, 3 May 2019 14:24:57 +0000 (16:24 +0200)]
Rollup merge of #60388 - cramertj:elided-lifetime-async, r=nikomatsakis

Disallow non-explicit elided lifetimes in async fn

Fix https://github.com/rust-lang/rust/issues/60203

r? @nikomatsakis

5 years agoRollup merge of #60373 - rasendubi:lang-features-sort-since, r=Centril
Mazdak Farrokhzad [Fri, 3 May 2019 14:24:56 +0000 (16:24 +0200)]
Rollup merge of #60373 - rasendubi:lang-features-sort-since, r=Centril

Tidy: ensure lang features are sorted by since

This is the tidy side of https://github.com/rust-lang/rust/issues/60361.

What is left is actually splitting features into groups and sorting by since.

This PR also likely to produce a small (a couple of lines) merge conflict with https://github.com/rust-lang/rust/pull/60362.

r? @Centril

5 years agoRollup merge of #60220 - euclio:rustdoc-test-fatal-parsing-errors, r=QuietMisdreavus
Mazdak Farrokhzad [Fri, 3 May 2019 14:24:54 +0000 (16:24 +0200)]
Rollup merge of #60220 - euclio:rustdoc-test-fatal-parsing-errors, r=QuietMisdreavus

report fatal errors during doctest parsing

Fixes #59557.

5 years agoRollup merge of #59928 - petrochenkov:denyambass, r=varkor
Mazdak Farrokhzad [Fri, 3 May 2019 14:24:52 +0000 (16:24 +0200)]
Rollup merge of #59928 - petrochenkov:denyambass, r=varkor

Make deprecation lint `ambiguous_associated_items` deny-by-default

As requested by r? @Centril

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

5 years agoAuto merge of #60423 - varkor:update-getopts, r=alexcrichton
bors [Fri, 3 May 2019 10:15:48 +0000 (10:15 +0000)]
Auto merge of #60423 - varkor:update-getopts, r=alexcrichton

Update getopts

This is a prerequisite to fixing https://github.com/rust-lang/rust/issues/32352. The rustbuild fix has been pulled out of https://github.com/rust-lang/rust/pull/59440.

r? @alexcrichton

5 years agoAuto merge of #59883 - ebarnard:clonefile, r=sfackler
bors [Fri, 3 May 2019 07:26:46 +0000 (07:26 +0000)]
Auto merge of #59883 - ebarnard:clonefile, r=sfackler

Make `std::fs::copy` attempt to create copy-on-write clones of files on MacOS

The behaviour of MacOS now matches Linux which uses `copy_file_range` to perform CoW file copies where available and supported by the underlying filesystem.

5 years agoUpdate tests
Christopher Vittal [Thu, 2 May 2019 22:34:15 +0000 (18:34 -0400)]
Update tests

5 years agoPropagate mutability from arguments to local bindings in async fn
Taiki Endo [Fri, 3 May 2019 04:04:26 +0000 (13:04 +0900)]
Propagate mutability from arguments to local bindings in async fn

5 years agoFix potential integer overflow in SGX memory range calculation.
Jethro Beekman [Fri, 3 May 2019 01:15:44 +0000 (18:15 -0700)]
Fix potential integer overflow in SGX memory range calculation.

Thanks to Eduard Marin and David Oswald at the University of Burmingham,
and Jo Van Bulck at KU Leuven for discovering this issue.

5 years agoImplement base_local iteratively
Santiago Pastorino [Wed, 1 May 2019 23:07:44 +0000 (01:07 +0200)]
Implement base_local iteratively

5 years agoRemove root_local fn in favor of base_local
Santiago Pastorino [Wed, 1 May 2019 23:07:28 +0000 (01:07 +0200)]
Remove root_local fn in favor of base_local

5 years agoThis continue is not needed
Santiago Pastorino [Fri, 26 Apr 2019 20:18:59 +0000 (22:18 +0200)]
This continue is not needed

5 years agoUpdate getopts to 0.2.18
varkor [Tue, 30 Apr 2019 19:37:36 +0000 (20:37 +0100)]
Update getopts to 0.2.18

This is a proof-of-concept that the dependency unification fix works.

5 years agoPrevent dependencies between std/test/rustc unifying with each other
varkor [Tue, 30 Apr 2019 19:37:05 +0000 (20:37 +0100)]
Prevent dependencies between std/test/rustc unifying with each other

5 years agomention `hir::Body` in docs for `hir::FnDecl`
Andy Russell [Thu, 2 May 2019 18:03:33 +0000 (14:03 -0400)]
mention `hir::Body` in docs for `hir::FnDecl`

5 years agofix markdown syntax in `LateContext` examples
Andy Russell [Thu, 2 May 2019 16:33:59 +0000 (12:33 -0400)]
fix markdown syntax in `LateContext` examples

5 years agoStub display impl for Origin
Christopher Vittal [Mon, 25 Mar 2019 13:16:12 +0000 (09:16 -0400)]
Stub display impl for Origin

5 years agoRemove BorrowckMode::Compare
Christopher Vittal [Mon, 25 Mar 2019 08:09:52 +0000 (04:09 -0400)]
Remove BorrowckMode::Compare

5 years agoConstrain all regions in the concrete type for an opaque type
Matthew Jasper [Wed, 1 May 2019 20:15:01 +0000 (21:15 +0100)]
Constrain all regions in the concrete type for an opaque type

5 years agoAuto merge of #60173 - RalfJung:miri, r=oli-obk
bors [Thu, 2 May 2019 17:43:46 +0000 (17:43 +0000)]
Auto merge of #60173 - RalfJung:miri, r=oli-obk

update miri

r? @oli-obk

5 years agoMake tidy::version::Version copy
Alexey Shmalko [Thu, 2 May 2019 11:38:16 +0000 (14:38 +0300)]
Make tidy::version::Version copy

5 years agoMake in_feature_group a simple bool flag
Alexey Shmalko [Thu, 2 May 2019 11:30:30 +0000 (14:30 +0300)]
Make in_feature_group a simple bool flag

5 years agoRework Version::parse to avoid extra allocations
Alexey Shmalko [Wed, 1 May 2019 21:52:44 +0000 (00:52 +0300)]
Rework Version::parse to avoid extra allocations

5 years agoGroup and sort feature_gate.rs
Alexey Shmalko [Wed, 1 May 2019 19:42:57 +0000 (22:42 +0300)]
Group and sort feature_gate.rs

5 years agoMake tidy::version::Version a [u32; 3]
Alexey Shmalko [Wed, 1 May 2019 19:15:00 +0000 (22:15 +0300)]
Make tidy::version::Version a [u32; 3]

5 years agoAddress review comments
Alexey Shmalko [Wed, 1 May 2019 19:01:01 +0000 (22:01 +0300)]
Address review comments

5 years agoEnsure language features in group are sorted by since
Alexey Shmalko [Mon, 29 Apr 2019 17:51:19 +0000 (20:51 +0300)]
Ensure language features in group are sorted by since

5 years agoAssign group and parse since for Feature
Alexey Shmalko [Mon, 29 Apr 2019 17:39:55 +0000 (20:39 +0300)]
Assign group and parse since for Feature

5 years agoMake find_attr_val a little bit more precise
Alexey Shmalko [Mon, 29 Apr 2019 17:01:46 +0000 (20:01 +0300)]
Make find_attr_val a little bit more precise

`find_attr_val(&line, "since")` returns `Some(", issue = ")` when
`line` is set to the following line:

```
[unstable(feature = "checked_duration_since", issue = "58402")]
```

Make `find_attr_val` use regex that is a little bit more
precise (requires `=` after key name).

It still does not handle all cases (e.g., extra leading chars in key
name, or escaped quotes in value), but is good enough for now.

5 years agoAuto merge of #60379 - froydnj:bootstrap-progress-fixes, r=kennytm
bors [Thu, 2 May 2019 13:26:52 +0000 (13:26 +0000)]
Auto merge of #60379 - froydnj:bootstrap-progress-fixes, r=kennytm

intelligently handle older version of git in bootstrap

If we fail to run with `--progress`, try running without instead.

Fixes #57080.

5 years agoFix failing test
Wesley Wiser [Thu, 2 May 2019 12:48:08 +0000 (08:48 -0400)]
Fix failing test

5 years agoRemove the `self.mir` field from `ConstPropagator`
Wesley Wiser [Mon, 29 Apr 2019 22:32:35 +0000 (18:32 -0400)]
Remove the `self.mir` field from `ConstPropagator`

5 years agoAvoid repeated interning of static strings.
Nicholas Nethercote [Thu, 2 May 2019 10:34:26 +0000 (20:34 +1000)]
Avoid repeated interning of static strings.

`file_metadata_raw` interns the strings `"<unknown>"` and `""` very
frequently. This commit avoids that, which reduces the number of symbols
interned significantly and reduces instruction counts by up to 0.5% on
some workloads.

5 years agoMake `std::fs::copy` attempt to create copy-on-write clones of files on MacOS.
Edward Barnard [Thu, 11 Apr 2019 15:02:13 +0000 (16:02 +0100)]
Make `std::fs::copy` attempt to create copy-on-write clones of files on MacOS.

5 years agoupdate miri
Ralf Jung [Thu, 2 May 2019 07:35:47 +0000 (09:35 +0200)]
update miri

5 years agoAuto merge of #60156 - RalfJung:macos-rand, r=oli-obk,alexcrichton
bors [Thu, 2 May 2019 07:38:36 +0000 (07:38 +0000)]
Auto merge of #60156 - RalfJung:macos-rand, r=oli-obk,alexcrichton

use SecRandomCopyBytes on macOS in Miri

This is a hack to fix https://github.com/rust-lang/miri/issues/686: on macOS, rustc will open `/dev/urandom` to initialize a `HashMap`. That's quite hard to emulate properly in Miri without a full-blown implementation of file descriptors.  However, Miri needs an implementation of `SecRandomCopyBytes` anyway to support [getrandom](https://crates.io/crates/getrandom), so using it here should work just as well.

This will only have an effect when libstd is compiled specifically for Miri, but that will generally be the case when people use `cargo miri`.

This is clearly a hack, so I am opening this to start a discussion about whether we are okay with such a hack or not.

Cc @oli-obk

5 years agoAuto merge of #59008 - varkor:const-generics-infer, r=eddyb
bors [Thu, 2 May 2019 04:47:36 +0000 (04:47 +0000)]
Auto merge of #59008 - varkor:const-generics-infer, r=eddyb

Add const generics to infer (and transitive dependencies)

Split out from #53645. This work is a collaborative effort with @yodaldevoid.

There are a number of stubs. These are mainly to ensure we don't overlook them when completing the implementation, but are not necessary for the initial implementation. We plan to address these in follow up PRs.

r? @eddyb / @nikomatsakis

5 years agoAuto merge of #60460 - Centril:rollup-gz5bc8i, r=Centril
bors [Thu, 2 May 2019 02:01:31 +0000 (02:01 +0000)]
Auto merge of #60460 - Centril:rollup-gz5bc8i, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #59634 (Added an explanation for the E0704 error.)
 - #60348 (move some functions from parser.rs to diagostics.rs)
 - #60385 (Emit metadata files earlier)
 - #60428 (Refactor `eval_body_using_ecx` so that it doesn't need to query for MIR)
 - #60437 (Ensure that drop order of `async fn` matches `fn` and that users cannot refer to generated arguments.)
 - #60439 (doc: Warn about possible zombie apocalypse)
 - #60452 (Remove Context and ContextKind)

Failed merges:

r? @ghost

5 years agoDisallow non-explicit elided lifetimes in async fn
Taylor Cramer [Tue, 30 Apr 2019 00:45:22 +0000 (17:45 -0700)]
Disallow non-explicit elided lifetimes in async fn

5 years agoRollup merge of #60452 - JohnTitor:remove-context, r=matthewjasper
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:32 +0000 (01:09 +0200)]
Rollup merge of #60452 - JohnTitor:remove-context, r=matthewjasper

Remove Context and ContextKind

Fixes #60421

r? @matthewjasper

5 years agoRollup merge of #60439 - vorner:zombie-apocalypse-warn, r=TimNN
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:31 +0000 (01:09 +0200)]
Rollup merge of #60439 - vorner:zombie-apocalypse-warn, r=TimNN

doc: Warn about possible zombie apocalypse

Extend the std::process::Child docs with warning about possible zombies.
The previous version mentioned that when dropping the Child, the
process is not killed. However, the wording gave the impression that
such behaviour is fine to do (leaving the reader believe low-level
details like reaping zombies of the dead processes is taken over by std
somehow; or simply leaving the reader unaware about the problem).

5 years agoRollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:29 +0000 (01:09 +0200)]
Rollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis

Ensure that drop order of `async fn` matches `fn` and that users cannot refer to generated arguments.

Fixes #60236 and fixes #60438.

This PR modifies the lowering of `async fn` arguments so that the
drop order matches the equivalent `fn`.

Previously, async function arguments were lowered as shown below:

    async fn foo(<pattern>: <ty>) {
      async move {
      }
    } // <-- dropped as you "exit" the fn

    // ...becomes...
    fn foo(__arg0: <ty>) {
      async move {
        let <pattern> = __arg0;
      } // <-- dropped as you "exit" the async block
    }

After this PR, async function arguments will be lowered as:

    async fn foo(<pattern>: <ty>, <pattern>: <ty>, <pattern>: <ty>) {
      async move {
      }
    } // <-- dropped as you "exit" the fn

    // ...becomes...
    fn foo(__arg0: <ty>, __arg1: <ty>, __arg2: <ty>) {
      async move {
        let __arg2 = __arg2;
        let <pattern> = __arg2;
        let __arg1 = __arg1;
        let <pattern> = __arg1;
        let __arg0 = __arg0;
        let <pattern> = __arg0;
      } // <-- dropped as you "exit" the async block
    }

If `<pattern>` is a simple ident, then it is lowered to a single
`let <pattern> = <pattern>;` statement as an optimization.

This PR also stops users from referring to the generated `__argN`
identifiers.

r? @nikomatsakis

5 years agoRollup merge of #60428 - wesleywiser:refactor_const_eval, r=oli-obk
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:28 +0000 (01:09 +0200)]
Rollup merge of #60428 - wesleywiser:refactor_const_eval, r=oli-obk

Refactor `eval_body_using_ecx` so that it doesn't need to query for MIR

This is the first step toward removing the `mir` field of `ConstPropagator` which will eventually allow us to actually const propagate in MIR.

r? @oli-obk

5 years agoRollup merge of #60385 - nnethercote:earlier-metadata, r=alexcrichton
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:26 +0000 (01:09 +0200)]
Rollup merge of #60385 - nnethercote:earlier-metadata, r=alexcrichton

Emit metadata files earlier

This will make cargo pipelining much more effective.

5 years agoRollup merge of #60348 - agnxy:refactor-parser, r=petrochenkov
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:25 +0000 (01:09 +0200)]
Rollup merge of #60348 - agnxy:refactor-parser, r=petrochenkov

move some functions from parser.rs to diagostics.rs

Starting with a few functions mentioned in https://github.com/rust-lang/rust/issues/60015#issuecomment-484259773. We might refactor parser.rs further in subsequent changes.
r? @petrochenkov

5 years agoRollup merge of #59634 - DevQps:explain-E0704, r=estebank
Mazdak Farrokhzad [Wed, 1 May 2019 23:09:23 +0000 (01:09 +0200)]
Rollup merge of #59634 - DevQps:explain-E0704, r=estebank

Added an explanation for the E0704 error.

# Description
Adds an explanation on the E0704 error. I tried to stick as closely to the message that the compiler generates. It's the first time I am fixing error messages here, so if there is something I did wrong or should improve, please let me know.

closes #55398

5 years agoAuto merge of #60432 - Manishearth:clippyup, r=Manishearth
bors [Wed, 1 May 2019 23:00:14 +0000 (23:00 +0000)]
Auto merge of #60432 - Manishearth:clippyup, r=Manishearth

Update clippy

r? @ghost

5 years agoUpdate clippy
Manish Goregaokar [Wed, 1 May 2019 22:24:52 +0000 (15:24 -0700)]
Update clippy

5 years agoRemove Context and ContextKind
Yuki Okushi [Wed, 1 May 2019 21:03:17 +0000 (06:03 +0900)]
Remove Context and ContextKind

5 years agoSplit `ct_err` out into `CommonConsts`
varkor [Wed, 1 May 2019 22:09:53 +0000 (23:09 +0100)]
Split `ct_err` out into `CommonConsts`

Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
5 years agoCreate ShallowResolver
varkor [Tue, 30 Apr 2019 21:27:33 +0000 (22:27 +0100)]
Create ShallowResolver

Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
5 years agoAdd a test for const args that cannot be inferred
varkor [Tue, 23 Apr 2019 12:20:22 +0000 (13:20 +0100)]
Add a test for const args that cannot be inferred

Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
5 years agoAdd a test for incorrect numbers of const args
varkor [Tue, 23 Apr 2019 12:20:04 +0000 (13:20 +0100)]
Add a test for incorrect numbers of const args

5 years agoFold const in writeback
varkor [Tue, 23 Apr 2019 12:18:11 +0000 (13:18 +0100)]
Fold const in writeback

5 years agoAdd a test for const arguments
varkor [Mon, 22 Apr 2019 23:03:14 +0000 (00:03 +0100)]
Add a test for const arguments

5 years agoFix issue with const params in operand.rs
varkor [Mon, 22 Apr 2019 23:03:00 +0000 (00:03 +0100)]
Fix issue with const params in operand.rs

5 years agoResolve FIXME in probe.rs
varkor [Mon, 22 Apr 2019 22:15:52 +0000 (23:15 +0100)]
Resolve FIXME in probe.rs

5 years agoCorrect name of constrained_generic_params alias
varkor [Mon, 22 Apr 2019 22:07:09 +0000 (23:07 +0100)]
Correct name of constrained_generic_params alias