]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #63570 - rust-lang:maybe-uninit-gates, r=RalfJung
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:32 +0000 (22:56 +0200)]
Rollup merge of #63570 - rust-lang:maybe-uninit-gates, r=RalfJung

Adjust tracking issues for `MaybeUninit<T>` gates

cc #63566  #63567 #63568 #63569

r? @RalfJung

4 years agoRollup merge of #63560 - Centril:mv-generator-test, r=petrochenkov
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:31 +0000 (22:56 +0200)]
Rollup merge of #63560 - Centril:mv-generator-test, r=petrochenkov

move test that shouldn't be in test/run-pass/

We no longer test `src/test/run-pass/`; the proper way now is `// run-pass` in `src/test/ui/`

r? @petrochenkov

4 years agoRollup merge of #63543 - c410-f3r:variant, r=c410-f3r
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:29 +0000 (22:56 +0200)]
Rollup merge of #63543 - c410-f3r:variant, r=c410-f3r

Merge Variant and Variant_

Extracted from #63468.

4 years agoRollup merge of #63542 - c410-f3r:node_ids, r=petrochenkov
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:28 +0000 (22:56 +0200)]
Rollup merge of #63542 - c410-f3r:node_ids, r=petrochenkov

Add NodeId for Arm, Field and FieldPat

Extracted from #63468

4 years agoRollup merge of #63537 - petrochenkov:novisit, r=alexcrichton
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:27 +0000 (22:56 +0200)]
Rollup merge of #63537 - petrochenkov:novisit, r=alexcrichton

expand: Unimplement `MutVisitor` on `MacroExpander`

Each call to `fully_expand_fragment` is something unique, interesting, and requiring attention.
It represents a "root" of expansion and its use means that something unusual is happening, like eager expansion or expansion performed outside of the primary expansion pass.
So, it shouldn't hide under a generic visitor call.

Also, from all the implemented visitor methods only two were actually used.

cc https://github.com/rust-lang/rust/pull/63468#discussion_r313504119

4 years agoRollup merge of #63528 - petrochenkov:anyany, r=estebank
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:25 +0000 (22:56 +0200)]
Rollup merge of #63528 - petrochenkov:anyany, r=estebank

syntax: Remove `DummyResult::expr_only`

The effect is that if a built-in macro both returns an erroneous AST fragment and is used in unexpected position, then the incorrect position error won't be reported.

This combination of two errors should be rare and isn't worth an extra field that makes people ask questions in comments.
(There wasn't even a test making sure it worked.)

Addresses https://github.com/rust-lang/rust/pull/63468#discussion_r313504644
r? @estebank

4 years agoRollup merge of #63509 - estebank:async-span, r=Centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:24 +0000 (22:56 +0200)]
Rollup merge of #63509 - estebank:async-span, r=Centril

Point at the right enclosing scope when using `await` in non-async fn

Fix #63398.

4 years agoRollup merge of #63507 - estebank:type-inference-error, r=Centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:22 +0000 (22:56 +0200)]
Rollup merge of #63507 - estebank:type-inference-error, r=Centril

When needing type annotations in local bindings, account for impl Trait and closures

Fix https://github.com/rust-lang/rust/issues/46680, fix https://github.com/rust-lang/rust/issues/63504, fix https://github.com/rust-lang/rust/issues/63506, fix #40014, cc https://github.com/rust-lang/rust/issues/63502.

4 years agoRollup merge of #63490 - Centril:cleanup-pat-parser, r=petrochenkov
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:21 +0000 (22:56 +0200)]
Rollup merge of #63490 - Centril:cleanup-pat-parser, r=petrochenkov

libsyntax: cleanup and refactor `pat.rs`

A smaller refactoring & cleanup of `pat.rs` (best read commit by commit).

r? @petrochenkov

4 years agoRollup merge of #63075 - RalfJung:deref-checks, r=oli-obk
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:20 +0000 (22:56 +0200)]
Rollup merge of #63075 - RalfJung:deref-checks, r=oli-obk

Miri: Check that a ptr is aligned and inbounds already when evaluating `*`

This syncs Miri with what the Nomicon and the Reference say, and resolves https://github.com/rust-lang/miri/issues/447.

Also this would not have worked without https://github.com/rust-lang/rust/pull/62982 due to new cycles. ;)

r? @oli-obk

4 years agoRollup merge of #62984 - nathanwhit:extra_semi_lint, r=varkor
Mazdak Farrokhzad [Wed, 14 Aug 2019 20:56:18 +0000 (22:56 +0200)]
Rollup merge of #62984 - nathanwhit:extra_semi_lint, r=varkor

Add lint for excess trailing semicolons

Closes #60876.
A caveat (not necessarily a negative, but something to consider) with this implementation is that excess semicolons after return/continue/break now also cause an 'unreachable statement' warning.

For the following example:
```
fn main() {
    extra_semis();
}
fn extra_semis() -> i32 {
    let mut sum = 0;;;
    for i in 0..10 {
        if i == 5 {
            continue;;
        } else if i == 9 {
            break;;
        } else {
            sum += i;;
        }
    }
    return sum;;
}
```
The output is:
```
warning: unnecessary trailing semicolons
 --> src/main.rs:5:21
  |
5 |     let mut sum = 0;;;
  |                     ^^ help: remove these semicolons
  |
  = note: `#[warn(redundant_semicolon)]` on by default

warning: unnecessary trailing semicolon
 --> src/main.rs:8:22
  |
8 |             continue;;
  |                      ^ help: remove this semicolon

warning: unnecessary trailing semicolon
  --> src/main.rs:10:19
   |
10 |             break;;
   |                   ^ help: remove this semicolon

warning: unnecessary trailing semicolon
  --> src/main.rs:12:22
   |
12 |             sum += i;;
   |                      ^ help: remove this semicolon

warning: unnecessary trailing semicolon
  --> src/main.rs:15:16
   |
15 |     return sum;;
   |                ^ help: remove this semicolon

warning: unreachable statement
 --> src/main.rs:8:22
  |
8 |             continue;;
  |                      ^
  |
  = note: `#[warn(unreachable_code)]` on by default

warning: unreachable statement
  --> src/main.rs:10:19
   |
10 |             break;;
   |                   ^

warning: unreachable statement
  --> src/main.rs:15:16
   |
15 |     return sum;;
   |                ^

```

4 years agoreview comments
Esteban Küber [Wed, 14 Aug 2019 19:14:25 +0000 (12:14 -0700)]
review comments

4 years agoAdjust tracking issues for `MaybeUninit<T>` gates
Mazdak Farrokhzad [Wed, 14 Aug 2019 18:07:37 +0000 (20:07 +0200)]
Adjust tracking issues for `MaybeUninit<T>` gates

4 years agoMerge Variant and Variant_
Caio [Wed, 14 Aug 2019 00:40:21 +0000 (21:40 -0300)]
Merge Variant and Variant_

4 years agomove test that shouldn't be in test/run-pass/
Mazdak Farrokhzad [Wed, 14 Aug 2019 16:04:33 +0000 (18:04 +0200)]
move test that shouldn't be in test/run-pass/

4 years agoAuto merge of #63544 - Centril:rollup-qhqfcov, r=Centril
bors [Wed, 14 Aug 2019 07:08:50 +0000 (07:08 +0000)]
Auto merge of #63544 - Centril:rollup-qhqfcov, r=Centril

Rollup of 17 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)
 - #63499 (handle elision in async fn correctly)
 - #63501 (use `ParamName` to track in-scope lifetimes instead of Ident)
 - #63508 (Do not ICE when synthesizing spans falling inside unicode chars)
 - #63511 (ci: add a check for clock drift)
 - #63512 (Provide map_ok and map_err method for Poll<Option<Result<T, E>>>)
 - #63529 (RELEASES.md: ? is one of three Kleene operators)
 - #63530 (Fix typo in error message.)

Failed merges:

r? @ghost

4 years agoRollup merge of #63530 - ehuss:typo-statemement, r=centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:57 +0000 (04:18 +0200)]
Rollup merge of #63530 - ehuss:typo-statemement, r=centril

Fix typo in error message.

4 years agoRollup merge of #63529 - andersk:release-notes-kleene, r=Centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:55 +0000 (04:18 +0200)]
Rollup merge of #63529 - andersk:release-notes-kleene, r=Centril

RELEASES.md: ? is one of three Kleene operators

The slash and quotes in ?/“Kleene” appeared to define “Kleene” as the name for the `?` operator, which is not the case. Rust has three Kleene operators `*`, `+`, `?`.

([Pointed out](https://www.reddit.com/r/rust/comments/cprt0z/rust_1370_prerelease_testing/ewr90y3/) by /u/Sharlinator on Reddit.)

4 years agoRollup merge of #63512 - 95th:master, r=cramertj
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:54 +0000 (04:18 +0200)]
Rollup merge of #63512 - 95th:master, r=cramertj

Provide map_ok and map_err method for Poll<Option<Result<T, E>>>

Currently `map_ok` and `map_err` methods are given for `Poll<Result<T, E>>`.

This PR adds these methods for `Poll<Option<Result<T, E>>>` as they are helpful in stream building code.

4 years agoRollup merge of #63511 - pietroalbini:pa-ci-date, r=Mark-Simulacrum
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:52 +0000 (04:18 +0200)]
Rollup merge of #63511 - pietroalbini:pa-ci-date, r=Mark-Simulacrum

ci: add a check for clock drift

Recently we encountered multiple spurious failures where the crates.io
certificate was reported as expired, even though it's currently due to
expire in a few months. This adds some code to our CI to check for clock
drifts, to possibly find the cause or rule out a bad VM clock.

cc https://github.com/rust-lang/rust/issues/63510
r? @Mark-Simulacrum

4 years agoRollup merge of #63508 - estebank:compromice, r=petrochenkov
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:51 +0000 (04:18 +0200)]
Rollup merge of #63508 - estebank:compromice, r=petrochenkov

Do not ICE when synthesizing spans falling inside unicode chars

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

4 years agoRollup merge of #63501 - nikomatsakis:issue-63500-async-anon-impl-lifetime, r=cramertj
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:49 +0000 (04:18 +0200)]
Rollup merge of #63501 - nikomatsakis:issue-63500-async-anon-impl-lifetime, r=cramertj

use `ParamName` to track in-scope lifetimes instead of Ident

Also, clear in-scope lifetimes when visiting nested items.

Fixes #63500.
Fixes #63225.
Fixes #52532.

r? @cramertj

4 years agoRollup merge of #63499 - nikomatsakis:issuee-63388-async-fn-elision-self-mut-self...
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:48 +0000 (04:18 +0200)]
Rollup merge of #63499 - nikomatsakis:issuee-63388-async-fn-elision-self-mut-self, r=cramertj

handle elision in async fn correctly

We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.

Example:

```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```

becomes

```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```

Fixes #63388

4 years agoRollup merge of #63493 - sd234678:remove-unneeded-comment-from-src/libcore/hash,...
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:47 +0000 (04:18 +0200)]
Rollup merge of #63493 - sd234678:remove-unneeded-comment-from-src/libcore/hash, r=Centril

Remove unneeded comment in src/libcore/hash/mod.rs

Split out from larger PR #63347 - other sections in there require further discussion.

r? @Centril

4 years agoRollup merge of #63488 - RalfJung:diagnostic-docs, r=zackmdavis
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:45 +0000 (04:18 +0200)]
Rollup merge of #63488 - RalfJung:diagnostic-docs, r=zackmdavis

improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

4 years agoRollup merge of #63486 - Observer42:document-from-trait-in-binaryheap, r=Centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:44 +0000 (04:18 +0200)]
Rollup merge of #63486 - Observer42:document-from-trait-in-binaryheap, r=Centril

Document `From` trait for `BinaryHeap`

This PR solves part of #51430. (cc @skade)

The comments described allocation and time complexity of the conversion from Vec to BinaryHeap

The complexity description of BinaryHeap operations is available at mod level:
https://doc.rust-lang.org/alloc/collections/binary_heap/index.html

But it doesn't show up at BinaryHeap page:
https://doc.rust-lang.org/alloc/collections/binary_heap/struct.BinaryHeap.html

4 years agoRollup merge of #63485 - pietroalbini:new-mirror-bucket, r=alexcrichton
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:43 +0000 (04:18 +0200)]
Rollup merge of #63485 - pietroalbini:new-mirror-bucket, r=alexcrichton

ci: move mirrors to their standalone bucket

Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with
CI toolchains. This is problematic for multiple reasons:

- CI IAM credentials are allowed to both edit and delete those files.
  A malicious user gaining access to those credentials would be able to
  change our mirrored dependencies, possibly compromising the compiler.

- Contents of the rust-lang-ci2 bucket are disposable except for the
  mirrors' content. When we implement backups for S3 buckets we'd have
  to replicate just that part of the bucket, complicating the backup
  logic and increasing the chance of mistakes. A standalone bucket will
  be way easier to backup.

This commit switches our CI to use the new rust-lang-ci-mirrors bucket.

r? @alexcrichton

4 years agoRollup merge of #63475 - iluuu1994:issue-62632, r=Centril
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:42 +0000 (04:18 +0200)]
Rollup merge of #63475 - iluuu1994:issue-62632, r=Centril

Bring back suggestion for splitting `<-` into `< -`

Closes #62632

4 years agoRollup merge of #63459 - eddyb:issue-63430, r=petrochenkov
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:40 +0000 (04:18 +0200)]
Rollup merge of #63459 - eddyb:issue-63430, r=petrochenkov

syntax: account for CVarArgs being in the argument list.

Fixes #63430 by testing for `1` argument (the `CVarArgs` itself) instead of `0`.

Note that the error has basically been impossible to trigger since the change that caused #63430, so perhaps we need an audit of untested errors.

Also, this check probably belongs in AST validation/HIR lowering, but I'd rather fix it in place for now.

r? @petrochenkov cc @dlrobertson

4 years agoRollup merge of #63421 - clarfon:escape_default, r=dtolnay
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:39 +0000 (04:18 +0200)]
Rollup merge of #63421 - clarfon:escape_default, r=dtolnay

Implement Clone, Display for ascii::EscapeDefault

This will mimic the same behaviour as the `char` version; `Display`ing the iterator will give its string representation without advancing it.

4 years agoRollup merge of #63383 - Centril:async-lifetime-elision-tests, r=nikomatsakis
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:37 +0000 (04:18 +0200)]
Rollup merge of #63383 - Centril:async-lifetime-elision-tests, r=nikomatsakis

`async fn` lifetime elision tests

Add `async fn` version of the tests in https://github.com/rust-lang/rust/pull/61207 per the first checkbox in https://github.com/rust-lang/rust/issues/62121#issuecomment-506884048.
Works towards resolving blockers in https://github.com/rust-lang/rust/pull/63209.

r? @nikomatsakis
cc @cramertj

4 years agoRollup merge of #62849 - davidtwco:prohibit-inheriting-lifetimes, r=nikomatsakis
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:36 +0000 (04:18 +0200)]
Rollup merge of #62849 - davidtwco:prohibit-inheriting-lifetimes, r=nikomatsakis

typeck: Prohibit RPIT types that inherit lifetimes

Part of #61949.

This PR prohibits return position `impl Trait` types that "inherit
lifetimes" from the parent scope. The intent is to forbid cases that are
challenging until they can be addressed properly.

cc @nikomatsakis

4 years agoRollup merge of #62760 - chansuke:dedupe-error-messages, r=zackmdavis
Mazdak Farrokhzad [Wed, 14 Aug 2019 02:18:35 +0000 (04:18 +0200)]
Rollup merge of #62760 - chansuke:dedupe-error-messages, r=zackmdavis

Deduplicate error messages in `librsctc_mir`

Deduplicated the error messages in `librustc_mir`. #62022

4 years agoAdd NodeId for Arm, Field and FieldPat
Caio [Wed, 14 Aug 2019 01:22:51 +0000 (22:22 -0300)]
Add NodeId for Arm, Field and FieldPat

4 years agoSuggest giving return type to closures on E0282
Esteban Küber [Tue, 13 Aug 2019 23:41:43 +0000 (16:41 -0700)]
Suggest giving return type to closures on E0282

4 years agoexpand: Unimplement `MutVisitor` on `MacroExpander`
Vadim Petrochenkov [Tue, 13 Aug 2019 23:30:09 +0000 (02:30 +0300)]
expand: Unimplement `MutVisitor` on `MacroExpander`

Each call to `fully_expand_fragment` is something unique, interesting, and requiring attention.
It represents a "root" of expansion and its use means that something unusual is happening, like eager expansion or expansion performed outside of the primary expansion pass.
So, it shouldn't be hide under a generic visitor call.

Also, from all the implemented visitor methods only two were actually used.

4 years agoexpand: `expand_fragment` -> `fully_expand_fragment`
Vadim Petrochenkov [Tue, 13 Aug 2019 22:59:14 +0000 (01:59 +0300)]
expand: `expand_fragment` -> `fully_expand_fragment`

4 years agoApply Centril's suggestion
Eric Huss [Tue, 13 Aug 2019 22:09:11 +0000 (15:09 -0700)]
Apply Centril's suggestion

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
4 years agoreview comments
Esteban Küber [Tue, 13 Aug 2019 18:35:49 +0000 (11:35 -0700)]
review comments

4 years agoreview comment: move test
Esteban Küber [Tue, 13 Aug 2019 18:27:00 +0000 (11:27 -0700)]
review comment: move test

4 years agoreview comments
Esteban Küber [Tue, 13 Aug 2019 18:24:08 +0000 (11:24 -0700)]
review comments

4 years agoFix typo in error message.
Eric Huss [Tue, 13 Aug 2019 18:21:09 +0000 (11:21 -0700)]
Fix typo in error message.

4 years agoRELEASES.md: ? is one of three Kleene operators
Anders Kaseorg [Tue, 13 Aug 2019 18:00:32 +0000 (11:00 -0700)]
RELEASES.md: ? is one of three Kleene operators

The slash and quotes in ?/“Kleene” appeared to define “Kleene” as the
name for the ? operator, which is not the case.  Rust has three Kleene
operators *, +, ?.

(Pointed out by /u/Sharlinator on Reddit.)

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
4 years agosyntax: Remove `DummyResult::expn_only`
Vadim Petrochenkov [Tue, 13 Aug 2019 17:51:54 +0000 (20:51 +0300)]
syntax: Remove `DummyResult::expn_only`

4 years agoreview comment: remove unecessary error in test
Esteban Küber [Tue, 13 Aug 2019 16:01:56 +0000 (09:01 -0700)]
review comment: remove unecessary error in test

4 years agobless tests with compare-mode=nll
Niko Matsakis [Tue, 13 Aug 2019 13:13:50 +0000 (09:13 -0400)]
bless tests with compare-mode=nll

4 years agoProvide map_ok and map_err method for Poll<Option<Result<T, E>>>
Gurwinder Singh [Tue, 13 Aug 2019 07:48:48 +0000 (13:18 +0530)]
Provide map_ok and map_err method for Poll<Option<Result<T, E>>>

4 years agoci: add a check for clock drift
Pietro Albini [Tue, 13 Aug 2019 07:36:48 +0000 (09:36 +0200)]
ci: add a check for clock drift

Recently we encountered multiple spurious failures where the crates.io
certificate was reported as expired, even though it's currently due to
expire in a few months. This adds some code to our CI to check for clock
drifts, to possibly find the cause or rule out a bad VM clock.

4 years agoPoint at the right enclosing scope when using `await` in non-async fn
Esteban Küber [Tue, 13 Aug 2019 06:56:13 +0000 (23:56 -0700)]
Point at the right enclosing scope when using `await` in non-async fn

4 years agoDo not ICE when synthesizing spans falling inside unicode chars
Esteban Küber [Tue, 13 Aug 2019 06:31:13 +0000 (23:31 -0700)]
Do not ICE when synthesizing spans falling inside unicode chars

4 years agoSuggest `Box::new` when appropriate
Esteban Küber [Tue, 13 Aug 2019 03:22:58 +0000 (20:22 -0700)]
Suggest `Box::new` when appropriate

When encountering a boxed value as expected and a stack allocated value
that could be boxed to fulfill the expectation, like in the following
snippet, suggest `Box::new` wrapping.

4 years agoFix tidy
Esteban Küber [Tue, 13 Aug 2019 01:42:19 +0000 (18:42 -0700)]
Fix tidy

4 years agobless tests
Niko Matsakis [Tue, 13 Aug 2019 01:13:59 +0000 (21:13 -0400)]
bless tests

4 years agoResolve types when suggesting boxed closure
Esteban Küber [Tue, 13 Aug 2019 01:12:19 +0000 (18:12 -0700)]
Resolve types when suggesting boxed closure

4 years agoclear in-scope lifetimes for nested items in HIR lowering
Niko Matsakis [Tue, 13 Aug 2019 01:08:32 +0000 (21:08 -0400)]
clear in-scope lifetimes for nested items in HIR lowering

This was causing us to incorrectly think the lifetimes were
already declared on the scope for the nested item, when in fact
they are not inherited.

4 years agoWhen needing type annotations in local bindings, account for impl Trait and closures
Esteban Küber [Mon, 12 Aug 2019 23:50:46 +0000 (16:50 -0700)]
When needing type annotations in local bindings, account for impl Trait and closures

Do not suggest nonsensical types when the type inference is failing on
`impl Trait` or anonymous closures.

4 years agofix README.md
Niko Matsakis [Mon, 12 Aug 2019 23:23:21 +0000 (19:23 -0400)]
fix README.md

4 years agorevamp comment
Niko Matsakis [Mon, 12 Aug 2019 23:21:13 +0000 (19:21 -0400)]
revamp comment

4 years agoadd edition to regression test
Niko Matsakis [Mon, 12 Aug 2019 22:33:53 +0000 (18:33 -0400)]
add edition to regression test

4 years agouse `modern` everywhere
Niko Matsakis [Mon, 12 Aug 2019 22:14:48 +0000 (18:14 -0400)]
use `modern` everywhere

4 years agorevamp how we handle elision in async fn
Niko Matsakis [Mon, 12 Aug 2019 21:15:33 +0000 (17:15 -0400)]
revamp how we handle elision in async fn

We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.

Example:

```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```

becomes

```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```

4 years agouse `ParamName` to track in-scope lifetimes instead of Ident
Niko Matsakis [Mon, 12 Aug 2019 19:17:16 +0000 (15:17 -0400)]
use `ParamName` to track in-scope lifetimes instead of Ident

This allows us to record "fresh" lifetime names for cases like `impl
Foo<'_>`.

4 years agotypeck: Prohibit RPIT types that inherit lifetimes
David Wood [Sun, 21 Jul 2019 13:37:13 +0000 (14:37 +0100)]
typeck: Prohibit RPIT types that inherit lifetimes

This commit prohibits return position `impl Trait` types that "inherit
lifetimes" from the parent scope. The intent is to forbid cases that are
challenging until they can be addressed properly.

4 years agoUpdate tests for excess semicolon lint
Nathan [Tue, 30 Jul 2019 17:52:32 +0000 (13:52 -0400)]
Update tests for excess semicolon lint

4 years agoAdd lint for excess trailing semicolons
Nathan [Tue, 30 Jul 2019 17:48:39 +0000 (13:48 -0400)]
Add lint for excess trailing semicolons

4 years agoParse excess semicolons as empty stmts for linting
nathanwhit [Thu, 25 Jul 2019 15:51:05 +0000 (11:51 -0400)]
Parse excess semicolons as empty stmts for linting

4 years agoAuto merge of #63483 - RalfJung:invalid-value, r=Centril
bors [Mon, 12 Aug 2019 12:43:33 +0000 (12:43 +0000)]
Auto merge of #63483 - RalfJung:invalid-value, r=Centril

Improve invalid_value lint message

The lint now explains which type is involved and why it cannot be initialized this way. It also points at the innermost struct/enum field that has an offending type, if any.

See https://github.com/erlepereira/x11-rs/issues/99#issuecomment-520311911 for how this helps in some real-world code hitting this lint.

4 years agosyntax: account for CVarArgs being in the argument list.
Eduard-Mihai Burtescu [Sun, 11 Aug 2019 05:25:30 +0000 (08:25 +0300)]
syntax: account for CVarArgs being in the argument list.

4 years agoextract parse_pat_{tuple_}struct + recover_one_fewer_dotdot
Mazdak Farrokhzad [Mon, 12 Aug 2019 10:27:43 +0000 (12:27 +0200)]
extract parse_pat_{tuple_}struct + recover_one_fewer_dotdot

4 years agoextract fatal_unexpected_non_pat
Mazdak Farrokhzad [Mon, 12 Aug 2019 09:39:44 +0000 (11:39 +0200)]
extract fatal_unexpected_non_pat

4 years agoparser/pat: minor misc cleanup
Mazdak Farrokhzad [Mon, 12 Aug 2019 07:28:30 +0000 (09:28 +0200)]
parser/pat: minor misc cleanup

4 years agoextract parse_pat_range_starting_with_lit
Mazdak Farrokhzad [Mon, 12 Aug 2019 07:01:08 +0000 (09:01 +0200)]
extract parse_pat_range_starting_with_lit

4 years agoextract parse_pat_range_starting_with_path
Mazdak Farrokhzad [Mon, 12 Aug 2019 06:35:24 +0000 (08:35 +0200)]
extract parse_pat_range_starting_with_path

4 years agoextract parse_pat_mac_invoc
Mazdak Farrokhzad [Mon, 12 Aug 2019 06:27:01 +0000 (08:27 +0200)]
extract parse_pat_mac_invoc

4 years agoextract ban_pat_range_if_ambiguous
Mazdak Farrokhzad [Mon, 12 Aug 2019 06:16:04 +0000 (08:16 +0200)]
extract ban_pat_range_if_ambiguous

4 years agoextract recover_pat_ident_mut_first
Mazdak Farrokhzad [Mon, 12 Aug 2019 05:45:55 +0000 (07:45 +0200)]
extract recover_pat_ident_mut_first

4 years agoApply suggestions from code review
Observer42 [Mon, 12 Aug 2019 10:07:14 +0000 (18:07 +0800)]
Apply suggestions from code review

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
4 years agomore informative error message from invalid_value lint
Ralf Jung [Mon, 12 Aug 2019 07:24:13 +0000 (09:24 +0200)]
more informative error message from invalid_value lint

4 years agoAuto merge of #63489 - Centril:rollup-uuf6z1s, r=Centril
bors [Mon, 12 Aug 2019 08:58:48 +0000 (08:58 +0000)]
Auto merge of #63489 - Centril:rollup-uuf6z1s, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #62108 (Use sharded maps for queries)
 - #63297 (Improve pointer offset method docs)
 - #63406 (Suggest using a qualified path in patterns with inconsistent bindings)
 - #63431 (Revert "Simplify MIR generation for logical ops")
 - #63449 (resolve: Remove remaining special cases from built-in macros)
 - #63461 (docs: add stdlib env::var(_os) panic)
 - #63473 (Regression test for #56870)
 - #63474 (Add tests for issue #53598 and #57700)
 - #63480 (Fixes #63477)

Failed merges:

r? @ghost

4 years agoRollup merge of #63480 - OptimisticPeach:patch-1, r=Centril
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:24 +0000 (10:58 +0200)]
Rollup merge of #63480 - OptimisticPeach:patch-1, r=Centril

Fixes #63477

Adds a closing parenthesis.

4 years agoRollup merge of #63474 - adamAndMath:master, r=Centril
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:22 +0000 (10:58 +0200)]
Rollup merge of #63474 - adamAndMath:master, r=Centril

Add tests for issue #53598 and #57700

Closes #53598 and #57700

4 years agoRollup merge of #63473 - adrian-budau:master, r=Centril
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:21 +0000 (10:58 +0200)]
Rollup merge of #63473 - adrian-budau:master, r=Centril

Regression test for #56870

Closes #56870.

4 years agoRollup merge of #63461 - tommilligan:doc-var-panic, r=joshtriplett
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:19 +0000 (10:58 +0200)]
Rollup merge of #63461 - tommilligan:doc-var-panic, r=joshtriplett

docs: add stdlib env::var(_os) panic

Closes #63456

4 years agoRollup merge of #63449 - petrochenkov:builtinagain, r=eddyb
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:18 +0000 (10:58 +0200)]
Rollup merge of #63449 - petrochenkov:builtinagain, r=eddyb

resolve: Remove remaining special cases from built-in macros

Edition and definition sites of the macros are now also taken from the `#[rustc_builtin_macro]` definitions in `libcore`.

---
The edition switch may be a breaking change for `Rustc{Encodable,Decodable}` derives if they are used in combination with the unstable crate `serialize` from sysroot like this
```rust
extern crate serialize;
use serialize as rustc_serialize;

#[derive(RustcEncodable)]
struct S;
```
(see the updated `ui-fulldeps` tests).

4 years agoRollup merge of #63431 - andjo403:revert_mir_simplification, r=matthewjasper
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:16 +0000 (10:58 +0200)]
Rollup merge of #63431 - andjo403:revert_mir_simplification, r=matthewjasper

Revert "Simplify MIR generation for logical ops"

This reverts commit e38e954a0d249f88d0a55504f70d6055e865a931.

llvm were not able to optimize the code that well with the simplified mir.

Closes: #62993
4 years agoRollup merge of #63406 - jakubadamw:resolve-inconsistent-names-suggest-qualified...
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:15 +0000 (10:58 +0200)]
Rollup merge of #63406 - jakubadamw:resolve-inconsistent-names-suggest-qualified-path, r=petrochenkov

Suggest using a qualified path in patterns with inconsistent bindings

A program like the following one:

```rust
enum E { A, B, C }
fn f(x: E) -> bool {
    match x {
        A | B => false,
        C => true
    }
}
```

is rejected by the compiler due to `E` variant paths not being in scope.
In this case `A`, `B` are resolved as pattern bindings and consequently
the pattern is considered invalid as the inner or-patterns do not bind
to the same set of identifiers.

This is expected but the compiler errors that follow could be surprising
or confusing to some users. This commit adds a help note explaining that
if the user desired to match against variants or consts, they should use
a qualified path. The help note is restricted to cases where the identifier
starts with an upper-case sequence so as to reduce the false negatives.

Since this happens during resolution, there's no clean way to check what
it is the patterns match against. The syntactic criterium, however, is in line
with the convention that's assumed by the `non-camel-case-types` lint.

Fixes #50831.

4 years agoRollup merge of #63297 - RalfJung:ptr_offset, r=dtolnay
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:13 +0000 (10:58 +0200)]
Rollup merge of #63297 - RalfJung:ptr_offset, r=dtolnay

Improve pointer offset method docs

Cc @rkruppe @gnzlbg

4 years agoRollup merge of #62108 - Zoxc:sharded-queries, r=oli-obk
Mazdak Farrokhzad [Mon, 12 Aug 2019 08:58:12 +0000 (10:58 +0200)]
Rollup merge of #62108 - Zoxc:sharded-queries, r=oli-obk

Use sharded maps for queries

Based on https://github.com/rust-lang/rust/pull/61779.

r? @Gankro

4 years agoDiagnosticBuilder docs
Ralf Jung [Mon, 12 Aug 2019 08:53:09 +0000 (10:53 +0200)]
DiagnosticBuilder docs

4 years agoBring back suggestion for splitting `<-` into `< -`
Ilija Tovilo [Sun, 11 Aug 2019 21:37:05 +0000 (23:37 +0200)]
Bring back suggestion for splitting `<-` into `< -`

Closes #62632

4 years agoci: move mirrors to their standalone bucket
Pietro Albini [Mon, 12 Aug 2019 07:41:06 +0000 (09:41 +0200)]
ci: move mirrors to their standalone bucket

Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with
CI toolchains. This is problematic for multiple reasons:

- CI IAM credentials are allowed to both edit and delete those files.
  A malicious user gaining access to those credentials would be able to
  change our mirrored dependencies, possibly backdooring the compiler.

- Contents of the rust-lang-ci2 bucket are disposable except for the
  mirrors' content. When we implement backups for S3 buckets we'd have
  to replicate just that part of the bucket, complicating the backup
  logic and increasing the chance of mistakes. A standalone bucket will
  be way easier to backup.

This commit switches our CI to use the new rust-lang-ci-mirrors bucket.

4 years agoDocument From trait for BinaryHeap
Observer42 [Mon, 12 Aug 2019 08:07:13 +0000 (16:07 +0800)]
Document From trait for BinaryHeap

4 years agoextract parse_pat_tuple_or_parens
Mazdak Farrokhzad [Mon, 12 Aug 2019 05:41:50 +0000 (07:41 +0200)]
extract parse_pat_tuple_or_parens

4 years agoextract parse_pat_deref
Mazdak Farrokhzad [Mon, 12 Aug 2019 05:37:08 +0000 (07:37 +0200)]
extract parse_pat_deref

4 years agoparse_pat_with_range_pat: remove unnecessary assignments.
Mazdak Farrokhzad [Mon, 12 Aug 2019 05:34:08 +0000 (07:34 +0200)]
parse_pat_with_range_pat: remove unnecessary assignments.

4 years agoFixes #63477
OptimisticPeach [Mon, 12 Aug 2019 04:15:14 +0000 (00:15 -0400)]
Fixes #63477

Adds a closing parenthesis.

4 years agoAuto merge of #63469 - Centril:refactor-parser, r=petrochenkov
bors [Mon, 12 Aug 2019 02:35:55 +0000 (02:35 +0000)]
Auto merge of #63469 - Centril:refactor-parser, r=petrochenkov

libsyntax: Refactor `parser.rs` into reasonably sized logical units

Here we split `parser.rs` (~7.9 KLOC) into more reasonably sized files (all < 1.8 KLOC):

- `./src/libsyntax/parse/`
   - `parser.rs`
   - `parser/`
      - `pat.rs`
      - `expr.rs`
      - `stmt.rs`
      - `ty.rs`
      - `path.rs`
      - `generics.rs`
      - `item.rs`
      - `module.rs`

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

r? @petrochenkov

4 years agoAuto merge of #63472 - Xanewok:update-rls, r=Mark-Simulacrum
bors [Sun, 11 Aug 2019 22:53:30 +0000 (22:53 +0000)]
Auto merge of #63472 - Xanewok:update-rls, r=Mark-Simulacrum

Update RLS

This update includes the ability to warn on deprecated config keys.
It's important to be able to warn the user whenever they're using
an old configuration rather than giving them a cryptic "unknown
configuration error"

cc https://github.com/rust-lang/rls-vscode/issues/639

Since we removed a config value in the current nightly, it'd be
very good if this change can make also make it before cutting the
next release.

4 years agoMove tests into type-alias-impl-trait
Adam [Sun, 11 Aug 2019 20:30:21 +0000 (22:30 +0200)]
Move tests into type-alias-impl-trait

4 years agoAdd test for issue 53598 and 57700
Adam [Sun, 11 Aug 2019 20:17:28 +0000 (22:17 +0200)]
Add test for issue 53598 and 57700