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