Commit graph

102 commits

Author SHA1 Message Date
Mazdak Farrokhzad
c37bd26eaa Test that _ @ subpat is syntactically rejected. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
e39abcfad9 harden & split borrowck-pat-at-and-box 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
48f2766522 enhance borrowck-pat-by-copy-bindings-in-at 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
427b1c33e9 clarify bind-by-move-neither-can-livee.. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
6fa8f4a57b bindings_after_at: harden tests wrt. contexts & slice_patterns 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
0034e6199e bindings_after_at: harden tests wrt. promotion 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
9ab36037a4 --bless bindings-after-at tests 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
6a87f99620 check_legality_of_move_bindings: generalize diagnostics & add comments 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
5f92a56ed6 Introduce #![feature(bindings_after_at)].
Under the gate, `x @ Some(y)` is allowed.
This is subject to various restrictions for soundness.
2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
eac5fb8b0a
Rollup merge of #67189 - LeSeulArtichaut:binop-wording, r=estebank
Unify binop wording

Closes #60497
r? @estebank
2019-12-19 10:29:51 +01:00
Niko Matsakis
1719337d02 Revert "Remove #![feature(never_type)] from tests."
This reverts commit 8f6197f39f.
2019-12-14 09:01:04 -05:00
LeSeulArtichaut
eac6fac10b Update tests 2019-12-12 20:56:14 +01:00
LeSeulArtichaut
3bd46f1aec Update UI test expectations 2019-12-12 20:56:14 +01:00
Nadrieril
fbd2cd09e6 Revert a diagnostic change in the case of integer ranges 2019-12-11 18:17:58 +00:00
Nadrieril
40f434b8c5 Reuse adt_defined_here 2019-12-04 16:43:24 +00:00
Nadrieril
2216318484 Use the default code path to list missing patterns
This uses the exact same code path that would be used for
`match x { _ if false => {} }`, since in both cases the resulting matrix
is empty. Since we think the behaviour in that case is ok, then we can
remove the special case and use the default code path.
2019-12-04 16:43:24 +00:00
Nadrieril
e444346b12 List missing constructors in an almost empty match
Actually empty matches are still handled by a different code path
2019-12-04 16:43:24 +00:00
Nadrieril
5a3b7d2055 Add tests 2019-12-04 16:43:24 +00:00
Nadrieril
c0f3c06c6d Only warn about missing patterns in the case of an enum 2019-12-04 16:43:21 +00:00
Nadrieril
2099dd1aa2 Add tests 2019-12-04 16:43:21 +00:00
Nadrieril
5628d4a7c3 Make empty match lint more consistent under exhaustive_patterns 2019-12-04 16:43:21 +00:00
Nadrieril
1c77a049b9 Fix erroneous comment 2019-12-04 16:43:21 +00:00
Nadrieril
1bd97ae8a1 Tweak error on empty match 2019-12-04 16:43:21 +00:00
Nadrieril
922310d60f Add tests 2019-12-04 16:43:21 +00:00
Nadrieril
1c1bec2f6d Remove top-level or-pattern hack 2019-12-02 16:03:03 +00:00
Nadrieril
a476af22e8 Correct error on partially unreachable or-pat in if let 2019-12-02 16:03:03 +00:00
Nadrieril
00ccadf43f Add some tests 2019-12-02 16:00:24 +00:00
bors
f453d1127d Auto merge of #66603 - Nadrieril:fix-65413, r=varkor
Fix #65413

#65413 was due to an oversight in `pat_constructor` that didn't check if a particular const value was maybe a slice/array const.
2019-11-28 14:22:47 +00:00
bors
53712f8637 Auto merge of #66389 - estebank:type-err-labels, r=petrochenkov
Specific labels when referring to "expected" and "found" types
2019-11-21 17:53:19 +00:00
Mazdak Farrokhzad
8f6197f39f Remove #![feature(never_type)] from tests.
Also remove `never_type` the feature-gate test.
2019-11-21 14:55:32 +01:00
Nadrieril
5510f5589e Use appropriate constructor for const slices 2019-11-21 11:20:46 +00:00
Nadrieril
fa4a4d3eda Add some tests 2019-11-21 11:20:46 +00:00
Esteban Küber
6f8f70624b Surround types with backticks in type errors 2019-11-18 11:03:04 -08:00
Esteban Küber
94c6425464 Remove E0308 note when primary label has all info 2019-11-18 11:03:03 -08:00
Esteban Küber
b2e6aef073 review comments: tweak prefix strings 2019-11-18 11:02:44 -08:00
Esteban Küber
83ffda5216 Specific labels when referring to "expected" and "found" types 2019-11-18 11:02:22 -08:00
Nadrieril Feneanar
2079ae3a52
Update src/test/ui/pattern/issue-53820-slice-pattern-large-array.rs
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-11-18 15:40:49 +00:00
Nadrieril
daa117eab7 Small improvement to exhaustiveness diagnostics 2019-11-17 17:59:37 +00:00
Nadrieril
5b420a9dc4 Add regression test for issue 53820 2019-11-16 16:43:55 +00:00
Nadrieril
d93c1b320c Introduce new FixedLenSlice constructor
It is used in the case where a variable-length slice pattern is used to
match on an array of known size. This allows considering only those
entries in the array that are captured by one of the patterns.
As a side-effect, diagnostics improve a bit for those cases.
2019-11-16 16:43:20 +00:00
Nadrieril
c00ecfa8d2 Add some tests 2019-11-16 16:18:46 +00:00
Nadrieril
cde9808eaa Add regression test 2019-11-15 16:55:38 +00:00
Nadrieril Feneanar
9165dd056b Apply suggestions from code review
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-11-15 16:55:37 +00:00
Nadrieril
c38aad4f4b Add test for failing try_eval_bits 2019-11-15 16:55:37 +00:00
Yuki Okushi
302cf6db74 Tweak non-char/numeric in range pattern diagnostic 2019-11-13 08:27:53 +09:00
Nadrieril
098974dadd Split slice-patterns test as suggested by Centril 2019-11-06 15:27:21 +00:00
Nadrieril
9531787ae5 Move a few more tests to the usefulness/ folder 2019-11-05 18:40:55 +00:00
Nadrieril
f774eb69fd Use VarLenSlice consistently when splitting constructors
The previous behaviour ignored slice lengths above a certain length
because it could not do otherwise. We now have VarLenSlice however, that
can represent the ignored lengths to make the algorithm more consistent.
This does not change the correctness of the algorithm, but makes it
easier to reason about.
As a nice side-effect, exhaustiveness errors have improved: they now
capture all missing lengths instead of only the shortest.
2019-11-05 18:32:26 +00:00
Nadrieril
58de9d9a13 Add some test cases 2019-11-05 17:59:01 +00:00
Nadrieril
65bc67e8d9 Make exhaustiveness error message more consistent for slice patterns
This improves error messages by indicating when slices above a certain
lengths have not been matched. Previously, we would only report examples
of such lengths, but of course never all of them.
2019-11-05 17:59:01 +00:00