Commit graph

90637 commits

Author SHA1 Message Date
varkor
2ce19ae3d1 Use non_erasable_generics for codegen
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
386e9fbda2 Add type_flags helper methods to consts
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
8cbbbaae6c Add InferConst
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
a36d386c6d Add ConstVid
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
11c31bb1d3 Add ParamConst
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
varkor
62f23c2b0b Add Const generic param to ty
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:07:37 +00:00
Nathan West
8ebc609eec
Add self to mailmap 2019-03-05 13:51:18 -08:00
QuietMisdreavus
3df0b895c1 only print coverage pass lists if running on nightly 2019-03-05 14:23:37 -06:00
QuietMisdreavus
e28cf74162 remove unused Display impl 2019-03-05 14:18:26 -06:00
John Kåre Alsaker
8052a4e5ac Add a test for HashStable stability 2019-03-05 20:46:45 +01:00
John Kåre Alsaker
12a491fbe2 Make rustc_macro a Rust 2018 crate 2019-03-05 20:46:45 +01:00
John Kåre Alsaker
1675212ece Move locate_ctxt back 2019-03-05 18:53:23 +01:00
Giles Cope
fcec51d1ef Removed whitespace 2019-03-05 17:47:23 +00:00
Hadley Canine
c0cef3344f
Remove JSBackend from config.toml
JSBackend is implied when building the emscripten backend, and not available for the standard llvm backend.  This commit also puts the example config in sync with the defaults in src/bootstrap/native.rs
2019-03-05 14:52:38 +00:00
Saleem Jaffer
9902f8c3c2 fixes rust-lang#52482 2019-03-05 16:13:44 +05:30
Giles Cope
33a64699b1 Unrolled await macro.
Was then able to the minimise the reproduction a little further.
2019-03-05 09:06:24 +00:00
bors
f22dca0a1b Auto merge of #58423 - nox:relax-bounds-buf-reader, r=dtolnay
Relax Read bounds on a bunch of BufReader<R> methods
2019-03-05 05:40:16 +00:00
Esteban Küber
2983d9c154 Elide invalid method receiver error when it contains TyErr
Fix #58712.
2019-03-04 21:30:07 -08:00
John Kåre Alsaker
cdbae16516 Use Ident for project 2019-03-05 06:06:20 +01:00
Taeguk Kwon
cbe33441e0 Add librustc, libsyntax to rust-src distribution. 2019-03-05 08:56:51 +09:00
Gabriela Alexandra Moldovan
cd9a0cf537 Make the lifetime parameters of tcx consistent. 2019-03-04 23:49:04 +00:00
John Kåre Alsaker
74b6419bb6 Update Cargo.lock 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
10d2008c51 Add ignore and project attributes 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
70156fbb75 Encode proc macro stability 2019-03-05 00:36:25 +01:00
John Kåre Alsaker
e501a87e89 Bootstrap changes 2019-03-05 00:36:24 +01:00
John Kåre Alsaker
c3c1c8d4e0 Allow linking to a proc macro on the target in metadata and still use a host proc macro to execute them 2019-03-05 00:36:23 +01:00
John Kåre Alsaker
97431a4090 Create a derive macro for HashStable 2019-03-05 00:36:20 +01:00
Josh Stone
538a0963ff Add as_slice() to slice::IterMut and vec::Drain
In bluss/indexmap#88, we found that there was no easy way to implement
`Debug` for our `IterMut` and `Drain` iterators. Those are built on
`slice::IterMut` and `vec::Drain`, which implement `Debug` themselves,
but have no other way to access their data. With a new `as_slice()`
method, we can read the data and customize its presentation.
2019-03-04 15:12:45 -08:00
Esteban Küber
e6387b6a75 Fix rebase and move suggestion to its own method 2019-03-04 13:39:52 -08:00
Josh Stone
842014d8fc Add an explicit test for issue #50582
This code no longer ICEs, and @yodaldevoid found that it was fixed by
commit fe5710a. While that added a similar test, we can explicitly test
this reproducer too.

Closes #50582.
2019-03-04 13:28:31 -08:00
Esteban Küber
f2718dc726 Add fixme 2019-03-04 13:17:54 -08:00
Esteban Küber
9e8a62b734 On return type impl Trait for block with no expr point at last semi 2019-03-04 13:17:54 -08:00
Giles Cope
6dd2a857aa Regression test added for an async ICE. 2019-03-04 18:53:12 +00:00
Mark Rousskov
9ed94e5e54 Fix release note problems noticed after merging. 2019-03-04 17:42:15 +01:00
Oliver Scherer
5c0615b89c Use early unwraps instead of bubbling up errors just to unwrap in the end 2019-03-04 17:13:50 +01:00
Felix S. Klock II
b129de47a0 Regression test for #58435. 2019-03-04 13:16:49 +01:00
Anthony Ramine
1fec8c2835 Make the Entry API of HashMap<K, V> Sync and Send (fixes #45219) 2019-03-04 10:20:40 +01:00
bors
a9da8fc9c2 Auto merge of #58380 - estebank:missing-match-pats, r=zackmdavis
Point at enum definition when match patterns are not exhaustive

```
error[E0004]: non-exhaustive patterns: type `X` is non-empty
 --> file.rs:9:11
  |
1 | / enum X {
2 | |     A,
  | |     - variant not covered
3 | |     B,
  | |     - variant not covered
4 | |     C,
  | |     - variant not covered
5 | | }
  | |_- `X` defined here
...
9 |       match x {
  |             ^
  |
  = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error[E0004]: non-exhaustive patterns: `B` and `C` not covered
  --> file.rs:11:11
   |
1  | / enum X {
2  | |     A,
3  | |     B,
4  | |     C,
   | |     - not covered
5  | | }
   | |_- `X` defined here
...
11 |       match x {
   |             ^ patterns `C` not covered
```

When a match expression doesn't have patterns covering every variant,
point at the enum's definition span. On a best effort basis, point at the
variant(s) that are missing. This does not handle the case when the missing
pattern is due to a field's enum variants:

```
enum E1 {
    A,
    B,
    C,
}
enum E2 {
    A(E1),
    B,
}
fn foo() {
    match E2::A(E1::A) {
        E2::A(E1::B) => {}
        E2::B => {}
    }
    //~^ ERROR `E2::A(E1::A)` and `E2::A(E1::C)` not handled
}
```

Unify look between match with no arms and match with some missing patterns.

Fix #37518.
2019-03-04 04:46:38 +00:00
bors
9261088a73 Auto merge of #58807 - Xanewok:update-clippy, r=Xanewok
Update Clippy

Should fix the fallout caused by https://github.com/rust-lang/rust/pull/58321 (still testing it locally).

r? @oli-obk
2019-03-04 01:46:37 +00:00
Igor Matuszewski
594e2616db Update Clippy 2019-03-03 23:51:24 +01:00
bors
45d015c95a Auto merge of #58505 - schomatis:fix/nll/remove-live-var, r=matthewjasper
[NLL] Remove `LiveVar`

The `LiveVar` type (and related) made it harder to reason about the code. It seemed as an abstraction that didn't bring any useful concept to the reader (when transitioning from the RFC theory to the actual implementation code).

It achieved a compactness in the vectors storing the def/use/drop information that was related only to the `LocalUseMap`. This PR went in the other direction and favored time over memory (but this decision can be easily reverted to the other side without reintroducing `LiveVar`).

What this PR aims at is to clarify that there's no significant transformation between the MIR `Local` and the `LiveVar` (now refactored as `live_locals: Vec<Local>`): we're just filtering (not mapping) the entire group of `Local`s into a meaningful subset that we should perform the liveness analysis on.

As a side note, there is no guarantee that the liveness analysis is performed only on (what the code calls) "live" variables, if the NLL facts are requested it will be performed on *any* variable so there can't be any assumptions on that regard. (Still, this PR didn't change the general naming convention to reduce the number of changes here and streamline the review process).

**Acceptance criteria:** This PR attempts to do only a minor refactoring and not to change the logic so it can't have any performance impact, particularly, it can't lose any of the significant performance improvement achieved in the great work done in https://github.com/rust-lang/rust/pull/52115.

r? @nikomatsakis
2019-03-03 22:49:16 +00:00
Tim
60a649ef6e Add .nll.stderr output 2019-03-03 23:43:46 +01:00
Wim Looman
41e60d1562 Monomorphize generator field types for debuginfo 2019-03-04 11:23:38 +13:00
benaryorg
2293d2260a
race condition in thread local storage example
The example had a potential race condition that would still pass the test.
If the thread which was supposed to modify it's own thread local was slower than the instruction to
modify in the main thread, then the test would pass even in case of a failure.
This is would be minor if the child thread was waited for since it check using an `assert_eq` for
the same thing, but vice versa.
However, if the `assert_eq` failed this would trigger a panic, which is not at all caught by the
example since the thread is not waited on.

Signed-off-by: benaryorg <binary@benary.org>
2019-03-03 20:53:50 +01:00
bors
87a436377a Auto merge of #58425 - wesleywiser:more_profiler_changes, r=michaelwoerister
[self-profiler] Make the profiler faster/more efficient

Related to #58372

r? @michaelwoerister
2019-03-03 19:48:12 +00:00
bors
2cfd6444a7 Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelix
[NLL] Type check operations with pointer types

It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible.

r? @pnkfelix
2019-03-03 16:46:12 +00:00
Wesley Wiser
f20ad70439 Use FxHashMap 2019-03-03 10:07:32 -05:00
Wesley Wiser
9d26789495 Reduce the size of events by using a u64 instead of Instant
Part of #58372
2019-03-03 10:07:32 -05:00
Wesley Wiser
fccc84199c Remove profiler output and replace with a raw event dump
Related to #58372
2019-03-03 10:07:32 -05:00
Wesley Wiser
25b8c614f0 Wrap the self-profiler in an Arc<Mutex<>>
This will allow us to send it across threads and measure things like
LLVM time.
2019-03-03 10:07:29 -05:00