455 Commits

Author SHA1 Message Date
varkor
87463c3962 Improve some comments 2018-08-20 23:16:15 +01:00
varkor
798b9ff9d5 Tweak comments 2018-08-19 23:10:18 +01:00
varkor
0383539ded Fix handling of floating-point ranges 2018-08-16 20:10:01 +01:00
varkor
1dbc78112f Handle equivalence classes of length-1 ranges 2018-08-16 20:10:01 +01:00
varkor
e9c8361cc6 Add equivalence class splitting for range constructors 2018-08-16 20:10:01 +01:00
varkor
9e9e023354 More formatting improvements 2018-08-16 20:09:05 +01:00
varkor
400cb1411e Add a summary of the algorithm to the file 2018-08-16 20:09:05 +01:00
varkor
99754adbbb Some reformatting 2018-08-16 20:09:05 +01:00
varkor
5959a358e4 Move logic from push_wild_constructor to apply_constructor 2018-08-16 20:09:05 +01:00
varkor
4aa929cf8b Move witnesses inside push_wild_constructor 2018-08-16 20:09:05 +01:00
varkor
bfc0807b28 Add some comments 2018-08-16 20:09:05 +01:00
varkor
af366b0eb8 Refactor condition 2018-08-16 20:09:05 +01:00
varkor
07064de9a7 No longer return value_constructors for all_constructors 2018-08-16 20:09:05 +01:00
varkor
d27c21c016 Refactor for less allocation 2018-08-16 20:09:05 +01:00
varkor
6c21a0322c Refactor after miri api changes 2018-08-16 20:09:05 +01:00
varkor
732d638483 Replace ... with ..= in suggestions
As ... is "(silently) deprecated". Presumably this means we should be giving correct, up-to-date suggestions, though.
2018-08-16 20:09:05 +01:00
varkor
1aa749469b Introduce signed_bias method
The epitome of simplicity!
2018-08-16 20:09:05 +01:00
varkor
72cc4bd33b Inline encode and decode methods 2018-08-16 20:09:05 +01:00
varkor
be12b242ce Fix print_miri_value for signed integers 2018-08-16 20:09:05 +01:00
varkor
97a032ebb4 Simplify bitwise operations 2018-08-16 20:09:05 +01:00
varkor
c388c11a60 Special-case (RangeEnd::Included, Ordering::Equal) in lower_pattern_unadjusted 2018-08-16 20:09:05 +01:00
varkor
effb3d05a0 Improve the comments 2018-08-16 20:09:05 +01:00
varkor
a9f2c5a7b2 Fix sign conversion arithmetic errors 2018-08-16 20:09:05 +01:00
varkor
f4af3b015f Refactor to remove explicit integer type matching 2018-08-16 20:09:05 +01:00
varkor
a553fa7244 Fix integer overflow 2018-08-16 20:09:05 +01:00
varkor
7695bd0be9 Use bit operators for min_max_ty 2018-08-16 20:09:04 +01:00
varkor
c00fd8f58c Refactor interval conditions 2018-08-16 20:09:04 +01:00
varkor
7f72030421 Fix range splitting 2018-08-16 20:09:04 +01:00
varkor
a20cb1084a Require just the Unicode Scalar Values to be matched for a char 2018-08-16 20:09:04 +01:00
varkor
9778a81e92 Improve macros with reduced repetition 2018-08-16 20:09:04 +01:00
varkor
121fa8d499 Fix handling of signed integers 2018-08-16 20:09:04 +01:00
varkor
ed5a4d5e60 Add feature gate and refactor 2018-08-16 20:09:04 +01:00
varkor
384db4f0cf Add support for all integer types 2018-08-16 20:09:04 +01:00
varkor
b3d2baff94 Give correct suggestions 2018-08-16 20:09:04 +01:00
varkor
e3357d9984 Implement interval checking 2018-08-16 20:09:04 +01:00
Oliver Schneider
37e18e7a30 Second field of ScalarPair can be undef in some cases 2018-08-02 13:16:53 +02:00
Oliver Schneider
c6c06854c0 Reintroduce Undef and properly check constant value sizes 2018-08-01 15:29:35 +02:00
Shotaro Yamada
3525368a56 Use str::repeat 2018-07-27 23:26:36 +09:00
Oliver Schneider
de511438cd Promoteds are statics and statics have a place, not just a value 2018-07-23 09:51:30 +02:00
csmoe
19730cc996 Fix tidy 2018-07-16 15:09:17 +02:00
csmoe
6a16b38198 ExprKind 2018-07-16 15:09:16 +02:00
csmoe
14893ba96b DeclKind 2018-07-16 15:09:16 +02:00
csmoe
114314c920 StmtKind 2018-07-16 15:09:16 +02:00
csmoe
fe8955bd58 BinOpKind 2018-07-16 15:09:16 +02:00
varkor
adf4ef7b98 Use LitToConstError rather than bool for errors 2018-07-02 19:44:27 +01:00
varkor
0195714836 Fix ICEs with match/return expressions inside array lengths 2018-07-02 19:44:27 +01:00
varkor
b00050f4cf Add more safeguards to "missing binding mode" errors 2018-07-02 19:44:27 +01:00
varkor
998141f8ef Fix another return-const ICE 2018-07-02 19:43:16 +01:00
bors
d94b804863 Auto merge of #51882 - varkor:check-type_dependent_defs, r=estebank
Always check type_dependent_defs

Directly indexing into `type_dependent_defs` has caused multiple ICEs in the past (https://github.com/rust-lang/rust/issues/46771, https://github.com/rust-lang/rust/issues/49241, etc.) and is almost certainly responsible for #51798 too. This PR ensures we always check `type_dependent_defs` first, which should prevent any more of these (or at least make them easier to track down).
2018-07-01 08:41:50 +00:00
bors
ab8a67c12a Auto merge of #51729 - matthewjasper:move-errors, r=nikomatsakis
[NLL] Better move errors

Make a number of changes to improve the quality of NLL cannot move errors.

* Group errors that occur in the same `match` with the same cause.
* Suggest `ref`, `&` or removing `*` to avoid the move.
* Show the place being matched on.

Differences from AST borrowck:

* `&` is suggested over `ref` when matching on a place that can't be moved from.
* Removing `*` is suggested instead of adding `&` when applicable.
* Sub-pattern spans aren't used, this would probably need Spans on Places.

Closes #45699
Closes #46627
Closes #51187
Closes #51189

r? @pnkfelix
2018-06-29 12:40:12 +00:00