Commit graph

17847 commits

Author SHA1 Message Date
Esteban Küber
c861e24e72 clean up 2019-09-28 09:56:28 -07:00
Esteban Küber
ae51953e80 review comments 2019-09-28 09:56:28 -07:00
Esteban Küber
8a167edbca Point at enclosing match when expecting () in arm
When encountering code like the following:

```rust
fn main() {
    match 3 {
        4 => 1,
        3 => {
            println!("Yep it maches.");
            2
        }
        _ => 2
    }
    println!("Bye!")
}
```

point at the enclosing `match` expression and suggest ignoring the
returned value:

```
error[E0308]: mismatched types
  --> $DIR/match-needing-semi.rs:8:13
   |
LL | /     match 3 {
LL | |         4 => 1,
LL | |         3 => {
LL | |             2
   | |             ^ expected (), found integer
LL | |         }
LL | |         _ => 2
LL | |     }
   | |     -- help: consider using a semicolon here
   | |_____|
   |       expected this to be `()`
   |
   = note: expected type `()`
              found type `{integer}
```

Fix #40799.
2019-09-28 09:56:28 -07:00
Mazdak Farrokhzad
017944c5a7
Rollup merge of #64859 - Centril:const-def-here-new-var, r=estebank
check_match: improve diagnostics for `let A = 2;` with `const A: i32 = 3`

For example:

```
error[E0005]: refutable pattern in local binding: `std::i32::MIN..=1i32` and `3i32..=std::i32::MAX` not covered
  --> $DIR/const-pat-non-exaustive-let-new-var.rs:2:9
   |
LL |     let A = 3;
   |         ^
   |         |
   |         interpreted as a constant pattern, not a new variable
   |         help: introduce a variable instead: `a_var`
...
LL |     const A: i32 = 2;
   |     ----------------- constant defined here
```

r? @estebank
cc @matthiaskrgr @rpjohnst
2019-09-28 05:38:00 +02:00
Mazdak Farrokhzad
fc53088a5c
Rollup merge of #64830 - Centril:thou-shallt-not-abort, r=estebank
Thou shallt not `.abort_if_errors()`

r? @estebank
2019-09-28 05:37:52 +02:00
Mazdak Farrokhzad
00cba5b092
Rollup merge of #64809 - davidtwco:issue-64768-target-feature-const, r=varkor
hir: Disallow `target_feature` on constants

Fixes #64768.

This PR fixes an ICE when `#[target_feature]` is applied to constants by disallowing this with the same error as when `#[target_feature]` is applied to other places it shouldn't be.

I couldn't see anything in the [RFC](https://github.com/rust-lang/rfcs/blob/master/text/2045-target-feature.md) that suggested that `#[target_feature]` should be applicable to constants or any tests that suggested it should, though I might have missed something - if this is desirable in future, it remains possible to remove this error (but for the time being, I think this error is better than an ICE).

I also added some extra cases to the test for other places where `#[target_feature]` should not be permitted.

cc @gnzlbg
2019-09-28 05:37:47 +02:00
Mazdak Farrokhzad
5b6a5801fb
Rollup merge of #64802 - estebank:walk-parents-iterator, r=matthewjasper
Account for tail expressions when pointing at return type

When there's a type mismatch we make an effort to check if it was
caused by a function's return type. This logic now makes sure to
only point at the return type if the error happens in a tail
expression.

Turn `walk_parent_nodes` method into an iterator.

CC #39968, CC #40799.
2019-09-28 05:37:46 +02:00
Mazdak Farrokhzad
85175b719b
Rollup merge of #64794 - Mark-Simulacrum:rm-dep-track-map, r=estebank
Remove unused DepTrackingMap

Deletes some related code (MemoizationMap trait, etc.)

I believe this became unused with red/green incremental introduction, but am uncertain.
2019-09-28 05:37:44 +02:00
Mazdak Farrokhzad
4db233e454
Rollup merge of #64781 - Mark-Simulacrum:no-global-tcx, r=eddyb
Remove stray references to the old global tcx
2019-09-28 05:37:43 +02:00
Mazdak Farrokhzad
aa03f1f5e3 Improve diagnostic for let A = 0;
where `A` is a constant, not a new variable.
2019-09-28 03:07:31 +02:00
Mazdak Farrokhzad
0022baae00 Inline the remaining hir::Arm::top_pats_hack 2019-09-27 19:54:25 +02:00
Mazdak Farrokhzad
dfd365f3e4 cleanup dead ast-borrowck / migrate-mode code. 2019-09-27 19:48:07 +02:00
Mazdak Farrokhzad
defd5088d6 cleanup check_match wrt. SignalledError. 2019-09-27 19:48:07 +02:00
Mazdak Farrokhzad
1eb280e2d8 Remove unpretty=flowgraph. 2019-09-27 19:48:07 +02:00
Mark Rousskov
4b23503b42 Remove shrink_to_tcx_lifetime
There's no longer two distinct gcx and tcx lifetimes which made this
necessary (or, at least, the code compiles -- it's possible we got
better at normalizing, but that seems unlikely).
2019-09-27 13:34:17 -04:00
Mark Rousskov
0a4d55ddb8 Remove stray uses of gcx name 2019-09-27 13:34:14 -04:00
Mark Rousskov
f226ab4ad9 Remove lift_to_global 2019-09-27 13:33:50 -04:00
Mark Rousskov
d540d44c71 Remove global_tcx from TyCtxt
The non-global context was removed; there's only one context now. This
is a noop method that only serves to confuse readers -- remove it.
2019-09-27 13:33:48 -04:00
Esteban Küber
a284822e00 fix rebase 2019-09-27 09:47:37 -07:00
Esteban Küber
e537d066f2 review comments 2019-09-27 09:34:51 -07:00
Esteban Küber
46a38dc183 Account for tail expressions when pointing at return type
When there's a type mismatch we make an effort to check if it was
caused by a function's return type. This logic now makes sure to
only point at the return type if the error happens in a tail
expression.
2019-09-27 09:34:51 -07:00
Esteban Küber
faee8e1756 Turn walk_parent_nodes method into an iterator 2019-09-27 09:34:03 -07:00
bors
590ae0ec4d Auto merge of #64813 - varkor:node-to-kind, r=Centril
Rename `*.node` to `*.kind`, and `hair::Pattern*` to `hair::Pat*`

In both `ast::Expr` and `hir::Expr`:

- Rename `Expr.node` to `Expr.kind`.
- Rename `Pat.node` to `Pat.kind`.
- Rename `ImplItem.node` to `ImplItem.kind`.
- Rename `Lit.node` to `Lit.kind`.
- Rename `TraitItem.node` to `TraitItem.kind`.
- Rename `Ty.node` to `Ty.kind`.
- Rename `Stmt.node` to `Stmt.kind`.
- Rename `Item.node` to `Item.kind`.
- Rename `ForeignItem.node` to `ForeignItem.kind`.
- Rename `MetaItem.node` to `MetaItem.kind`.

Also:
- Rename `hair::FieldPattern` to `hair::FieldPat`.
- Rename `hair::PatternKind` to `hair::PatKind`.
- Rename `hair::PatternRange` to `hair::PatRange`.
- Rename `PatternContext` to `PatCtxt`.
- Rename `PatternTypeProjection` to `PatTyProj`.
- Rename `hair::Pattern` to `hair::Pat`.

These two sets of changes are grouped together to aid with merging. The only changes are renamings.

r? @petrochenkov
2019-09-27 10:05:38 +00:00
Mazdak Farrokhzad
9ef6edb04a lowering: don't .abort_if_errors() 2019-09-27 06:09:32 +02:00
bors
0b1521ffb7 Auto merge of #64816 - Centril:rollup-gbeqot4, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #64221 ( Rust 2015: No longer downgrade NLL errors)
 - #64772 (Remove tx_to_llvm_workers from TyCtxt)
 - #64783 (Fix issue #64732)
 - #64787 (Fix ExitStatus on Fuchsia)
 - #64812 (Add test for E0543)

Failed merges:

r? @ghost
2019-09-26 20:29:40 +00:00
varkor
38121173e2 Rename MetaItem.node to MetaItem.kind 2019-09-26 18:21:48 +01:00
varkor
b474867961 Rename ForeignItem.node to ForeignItem.kind 2019-09-26 18:21:48 +01:00
varkor
7bc94cc3c2 Rename Item.node to Item.kind 2019-09-26 18:21:48 +01:00
varkor
21bf983acb Rename Stmt.node to Stmt.kind 2019-09-26 18:21:10 +01:00
varkor
c3d8791373 Rename Ty.node to Ty.kind 2019-09-26 18:21:10 +01:00
varkor
d4573c9c1e Rename TraitItem.node to TraitItem.kind 2019-09-26 18:21:09 +01:00
varkor
17726f6b52 Rename Lit.node to Lit.kind 2019-09-26 18:21:09 +01:00
varkor
ce6aabbaa1 Rename ImplItem.node to ImplItem.kind 2019-09-26 18:21:09 +01:00
varkor
8bd0382134 Rename Pat.node to Pat.kind 2019-09-26 18:21:09 +01:00
varkor
95f6d72a60 Rename Expr.node to Expr.kind
For both `ast::Expr` and `hir::Expr`.
2019-09-26 18:21:09 +01:00
David Wood
c3368bdfa4
hir: stop checking codegen fn attrs for constants
See linked comment[1] for context.

1: https://github.com/rust-lang/rust/pull/64809#discussion_r328662933

Signed-off-by: David Wood <david@davidtw.co>
2019-09-26 17:03:29 +01:00
David Wood
e79036d17f
hir: Disallow target_feature on constants
This commit fixes an ICE when `target_feature` is applied to constants.

Signed-off-by: David Wood <david@davidtw.co>
2019-09-26 16:55:52 +01:00
Mazdak Farrokhzad
01303936f3
Rollup merge of #64772 - Mark-Simulacrum:no-tyctxt-tx, r=eddyb
Remove tx_to_llvm_workers from TyCtxt

This can be kept within the codegen backend crates entirely -- there's no reason for us to create it outside and attempt to hold it in the (global) context.

Changes here aren't really too easily reviewable I suspect -- not sure if they can be cleaned up by splitting into more commits though, it's just hard to reason about `Box<Any>` in general. If there are thoughts though I'd be happy to hear them.

The primary goal of this PR is to get rid of the field on `rustc_interface::Queries`.
2019-09-26 17:55:13 +02:00
bors
ddf43867a9 Auto merge of #64515 - varkor:kindedterm, r=oli-obk
Rename `subst::Kind` to `subst::GenericArg`

And `subst::UnpackedKind` to `subst::GenericArgKind`. Individual variable names (e.g. `kind`) are not renamed, which would be an infeasible mission.

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

r? @eddyb
2019-09-26 12:34:54 +00:00
varkor
e3fb05dc3c Rename some _sty variables to _kind 2019-09-26 12:10:43 +01:00
varkor
bea3d67c77 Rename subst::Kind to subst::GenericArg 2019-09-26 11:48:05 +01:00
bors
134004f74d Auto merge of #62661 - arielb1:never-reserve, r=nikomatsakis
reserve `impl<T> From<!> for T`

this is necessary for never-type stabilization.

cc #57012 #35121

I think we wanted a crater run for this @nikomatsakis?

r? @nikomatsakis
2019-09-26 08:42:34 +00:00
bors
dc45735f29 Auto merge of #64513 - varkor:sty-begone, r=eddyb
Rename `TyS.sty` to `TyS.kind`

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

r? @eddyb
2019-09-26 04:29:18 +00:00
Mark Rousskov
9b00e219fe Remove unused DepTrackingMap 2019-09-25 21:20:57 -04:00
Mark Rousskov
b8a040fc5f Remove tx_to_llvm_workers from TyCtxt
This can be kept within the codegen backend crates entirely
2019-09-25 16:57:27 -04:00
varkor
93df1bb517 Fix rebase 2019-09-25 15:57:54 +01:00
varkor
bd5adc51fb Rename surviving uses of sty 2019-09-25 15:50:04 +01:00
varkor
e2e0f9af85 Rename sty to kind 2019-09-25 15:50:04 +01:00
varkor
2808a46a49 Rename non-TyS uses of sty 2019-09-25 15:48:51 +01:00
Mazdak Farrokhzad
1e8dd37561
Rollup merge of #64764 - Mark-Simulacrum:snap, r=Centril
Master is now 1.40

r? @pietroalbini
2019-09-25 16:26:22 +02:00