90460 Commits

Author SHA1 Message Date
Pietro Albini
19e39cb9cb
Rollup merge of #58080 - MikaelUrankar:freebsd_arm, r=sanxiyn
Add FreeBSD armv6 and armv7 targets
2019-03-08 09:41:36 +01:00
bors
0547ceb200 Auto merge of #58013 - Zoxc:stable-hash-macro-simple, r=oli-obk
Create a derive macro for HashStable and allow proc macros in rustc

A combination of https://github.com/rust-lang/rust/pull/56864 and https://github.com/rust-lang/rust/pull/56795. There were complications with using `serde_derive` as rustc doesn't know which crate to use for the host when there is a serde_derive in the sysroot and cargo passes another on the command line built from crates.io.

r? @eddyb (for proc macro changes) @alexcrichton (for rustbuild changes) @michaelwoerister (for the macro itself)
2019-03-08 05:46:08 +00:00
bors
88f755f8a8 Auto merge of #58583 - varkor:const-generics-ty, r=oli-obk
Add const generics to ty (and transitive dependencies)

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

There are a number of stubs. Some I plan to leave for the next PRs (e.g. `infer` and `rustdoc`). Others I can either fix up in this PR, or as follow ups (which would avoid the time-consuming rebasing).

It was a little hard to split this up, as so much depends on ty and friends. Apologies for the large diff.

r? @eddyb
2019-03-07 00:27:07 +00:00
John Kåre Alsaker
f2ef283b72 Make Cargo a rustc tool again 2019-03-06 18:48:08 +01:00
varkor
de4478af91 Refactor const_to_op 2019-03-06 09:58:27 +00:00
varkor
ed9227abbd Make adjustments for comments 2019-03-05 22:49:37 +00:00
varkor
5c8b3c38f1 Fix rebase fallout 2019-03-05 22:31:06 +00:00
varkor
0da0457593 Clean up some generic substs handling 2019-03-05 22:20:17 +00:00
varkor
162405f222 Fix negative integer literal test
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
3e3a4212e8 Update test fallout
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
4c18ee4abd Update const generics tests
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
54b935b9b9 Handle const generics elsewhere
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
c236c241e6 Handle const generics in typeck
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:20:01 +00:00
varkor
8e56729b4d Handle new ConstValue variants in mir
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:19:26 +00:00
varkor
2dfde88438 Implement structural_impls for const generics
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:42 +00:00
varkor
133e776bf0 Add HAS_CT_INFER
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00
varkor
fc0fbe8bb5 Stub rustdoc const generics implementations
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00
varkor
eb2b8be6a0 Implement collect for const parameters
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:17:41 +00:00
varkor
3001ae7f94 Implement wfcheck for const parameters
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:11 +00:00
varkor
a8361eb6fa Refactor compare_method
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:10 +00:00
varkor
f7cd97f786 Add ast_const_to_const
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:13:10 +00:00
varkor
f761c414b1 Make a lazy const from a const param
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:33 +00:00
varkor
0d1c9c08d7 Pretty printing for const generics
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:04 +00:00
varkor
cbf5d22bcd Add const type flags
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:04 +00:00
varkor
29c272d4ed Take const into account in context
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:10:24 +00:00
varkor
63b7572d0d Stub methods in infer
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:10:02 +00:00
varkor
9a9aa5b46a Implement Hash for new types
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
73a6df6079 Update diagnostics to include const parameters
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
f7f60eef50 Add type constraints from const parameters
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
varkor
7f2a4f7822 Add ConstValue::Param and ConstValue::Infer
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
varkor
1ebc858e5d Add const kind and UnpackedKind::Const
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
varkor
691d054e05 Take const generics into account when monomorphising
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:08:44 +00:00
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
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
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
John Kåre Alsaker
cdbae16516 Use Ident for project 2019-03-05 06:06:20 +01: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
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