Commit graph

71 commits

Author SHA1 Message Date
Mazdak Farrokhzad
24a178e397 --bless tests due to INCOMPLETE_FEATURES being a lint. 2019-07-30 10:43:32 +02:00
Mazdak Farrokhzad
bfdfa85e73 Add tests for Vec(Deque) array PartialEq impls. 2019-07-28 06:46:41 +02:00
bors
a3369981de Auto merge of #61749 - davidtwco:rfc-2203-const-array-repeat-exprs, r=eddyb
rustc/rustc_mir: Implement RFC 2203.

This PR implements RFC 2203, allowing constants in array repeat
expressions. Part of #49147.

r? @eddyb
2019-07-18 20:41:40 +00:00
Samy Kacimi
41e71b0c93
normalize use of backticks in compiler messages for libsyntax/feature_gate
https://github.com/rust-lang/rust/issues/60532
2019-07-09 14:13:28 +02:00
David Wood
485a80255b
rustc/rustc_mir: Implement RFC 2203.
This commit implements RFC 2203, allowing constants in array repeat
expressions.

Firstly, the check that the array repeat expression implements `Copy` is
removed and re-implemented in `rustc_mir::borrow_check::nll::type_check`
by emitting an error when the MIR contains a `Operand::Move` and the
type does not implement `Copy`.

Next, the `qualify_consts` pass is modified to construct a
`Candidate::Repeat` when it would be correct to promote a array repeat
expression.

Finally, the `promote_consts` pass is modified to promote the candidates
previously identified.
2019-07-07 19:51:09 +01:00
Scott McMurray
d6a9793722 Use const generics for array impls, restricted to 0..=32
- uses a never-stable core::array::LengthAtMost32 to bound the impls
- includes a custom error message to avoid mentioning LengthAtMost32 too often
- doesn't use macros for the slice implementations to avoid #62433
2019-07-07 11:31:38 -07:00
Mark Rousskov
007d87f171 Permit use of mem::uninitialized via allow(deprecated) 2019-07-04 21:01:35 -04:00
Yuki Okushi
c004451a20 Migrate compile-pass annotations to build-pass 2019-07-03 06:30:28 +09:00
David Wood
bc36aabf5f
typeck: Fix ICE for blocks in repeat expr count.
This commit extends the work in #61698 to get the `DefId` of const
parameters from block that resolve to a const parameter (as well as
const parameters directly, as it was previously).
2019-06-13 23:34:38 +01:00
Mazdak Farrokhzad
bd57c187fb
Rollup merge of #61698 - davidtwco:ice-const-generic-length, r=varkor
typeck: Fix const generic in repeat param ICE.

Fixes #61336. Turns out this wasn't related to #49147 after all.

r? @varkor
2019-06-11 17:14:04 +02:00
David Wood
9ed4674269
typeck: Fix const generic in repeat param ICE.
This commit fixes an ICE that occured when a const generic was used in
a repeat expression. This was due to the code expecting the length of
the repeat expression to be const evaluatable to a constant, but a const
generic parameter is not (however, it can be made into a constant).
2019-06-10 16:58:47 +01:00
varkor
7bb0a16ad7 Add test for deriving Debug for const generics 2019-06-07 10:18:19 +01:00
varkor
647b4a4deb Add test for const generics struct constructor 2019-06-07 10:18:19 +01:00
Mazdak Farrokhzad
1563514196
Rollup merge of #61409 - varkor:condition-trait-param-ice, r=oli-obk
Fix an ICE with a const argument in a trait

This goes some way towards fixing https://github.com/rust-lang/rust/issues/61383 (the reduced test case is fixed).
2019-06-04 04:48:08 +02:00
varkor
2b27c6235b Allow true and false in const generic arguments 2019-06-03 09:59:45 +01:00
Mazdak Farrokhzad
c748c7b3fe
Rollup merge of #61380 - varkor:expected-usize-got-param, r=eddyb
Fix some issues with `unwrap_usize` instead of `assert_usize`

Fixes https://github.com/rust-lang/rust/issues/61337.
Fixes https://github.com/rust-lang/rust/issues/61341.
Fixes https://github.com/rust-lang/rust/issues/61422.

r? @eddyb
2019-06-02 15:23:46 +02:00
varkor
e82cd9528c Add regression test for #61422 2019-06-02 01:55:46 +01:00
varkor
c2b663c666 Fix unwrapping usize issue with transparent MaybeUnit array wrapper 2019-06-02 01:50:06 +01:00
varkor
5e3ff4c2f1 Add test for condition in trait const param 2019-05-31 20:49:19 +01:00
Pietro Albini
2106d57c35
Rollup merge of #61344 - varkor:const-failed-to-life-ice, r=Centril
Add regression test for const generics ICE

Closes https://github.com/rust-lang/rust/issues/60879.
2019-05-31 13:33:58 +02:00
varkor
7e92607f5a Fix unwrapping usize issue in HasMutInterior 2019-05-31 01:19:59 +01:00
varkor
0fdd4191ad Add regression test for const generics ICE
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-05-30 19:55:43 +01:00
Mazdak Farrokhzad
528972a28a
Rollup merge of #61333 - varkor:apit-const-param-ice, r=estebank
Fix ICE with APIT in a function with a const parameter

Fixes https://github.com/rust-lang/rust/issues/60953.
2019-05-30 10:53:07 +02:00
varkor
998ef688a3 Add a regression test for const parameters with impl Trait 2019-05-30 00:21:04 +01:00
David Wood
41aaf7bc46
Fix ICE with struct ctors and const generics.
This commit fixes a ICE where struct constructors were resulting in an
ICE with const generics. Previously, a `match` in `type_of` did not have
an arm for the `DefKind::Ctor` resolutions and therefore would assume
that the type did not have generics.
2019-05-29 08:30:07 +01:00
varkor
6233d1fee5 Use assert_eq! instead of println! in tests 2019-05-28 21:35:20 +01:00
varkor
f13317ca2e Use Display rather than Debug printing for const mismatch 2019-05-28 21:35:20 +01:00
varkor
f865b7dda4 Update tests after pretty printing 2019-05-28 21:35:20 +01:00
varkor
cfa1f80cd9 Fix test after rebase 2019-05-28 21:35:20 +01:00
varkor
57ff5899d2 Add broken MIR regression tests 2019-05-28 21:35:20 +01:00
varkor
55dcc20f9a Add tests for uninferred consts during codegen 2019-05-28 21:34:42 +01:00
varkor
5a585fe45e Add a test for a function taking a const param array as an argument 2019-05-28 21:34:42 +01:00
Oliver Scherer
fa459a08e1 Fix rebase fallout 2019-05-25 10:07:02 +02:00
Mazdak Farrokhzad
25b5d30163
Rollup merge of #60710 - varkor:delay_span_bug-const-parent, r=matthewjasper
Use `delay_span_bug` for error cases when checking `AnonConst` parent

Fixes #60704.
Fixes #60650.
2019-05-13 21:36:54 +02:00
varkor
b3207d531d Add test for const impl 2019-05-11 00:08:40 +01:00
varkor
0f792abf00 Add a test for failed inference of const types 2019-05-10 20:53:46 +01:00
varkor
5310801062 Add a test for invalid const arguments 2019-05-10 20:53:35 +01:00
Mazdak Farrokhzad
59ff11393d
Rollup merge of #60550 - skinny121:concrete_const_tests, r=varkor
Add tests for concrete const types

In response to the request for help in https://github.com/rust-lang/rust/issues/44580#issuecomment-488819344, I have added several ui tests around the use of concrete const types, i.e. A<2>.

r? @varkor
2019-05-09 00:58:25 +02:00
ben
bfa15f3988 Add tests for concrete const types 2019-05-08 20:35:41 +12:00
bors
cfdc84a009 Auto merge of #60612 - Centril:rollup-61drhqt, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #60489 (Remove hamburger button from source code page)
 - #60535 (Correct handling of arguments in async fn)
 - #60579 (Rename `ParamTy::idx` to `ParamTy::index`)
 - #60583 (Fix parsing issue with negative literals as const generic arguments)
 - #60609 (Be a bit more explicit asserting over the vec rather than the len)

Failed merges:

r? @ghost
2019-05-07 19:39:52 +00:00
bors
17dba3b6e4 Auto merge of #60277 - estebank:relate-ice, r=varkor
Don't ICE when relating const type args

Fix #60263.

r? @varkor
2019-05-07 16:45:14 +00:00
varkor
594685b5a2 token::LArrow can begin arguments
`<-` may indicate the start of a negative const argument.
2019-05-06 17:00:01 +01:00
varkor
3e6787cb4c Early error for mixing order of const and type parameters 2019-05-04 22:28:08 +01:00
varkor
47f373128a Add tests 2019-05-04 14:39:43 +01:00
Esteban Küber
750808680a Don't ICE when relating const type args 2019-05-02 16:19:35 -07:00
varkor
1369132afa Add a test for const args that cannot be inferred
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-01 23:11:20 +01:00
varkor
a188850ded Add a test for incorrect numbers of const args 2019-05-01 23:11:19 +01:00
varkor
c7deb5bdc2 Add a test for const arguments 2019-05-01 23:11:19 +01:00
varkor
67176f751b Add const-types test 2019-05-01 23:11:19 +01:00
varkor
6d7c7940b5 Add comment explaining restriction 2019-04-25 23:29:58 +01:00