summary refs log tree commit diff
path: root/src/test/ui/pattern/usefulness
AgeCommit message (Collapse)AuthorLines
2020-12-22Add some testsNadrieril-28/+71
2020-12-22Auto merge of #78242 - Nadrieril:rename-overlapping_endpoints-lint, r=varkorbors-86/+103
Rename `overlapping_patterns` lint As discussed in https://github.com/rust-lang/rust/issues/65477. I also tweaked a few things along the way. r? `@varkor` `@rustbot` modify labels: +A-exhaustiveness-checking
2020-12-19Tweak diagnosticsNadrieril-8/+8
2020-12-18Keep all witnesses of non-exhaustivenessNadrieril-12/+14
2020-12-18Add testsNadrieril-14/+47
2020-11-29`overlapping_range_endpoints` does not belong in the `unused` lint groupNadrieril-37/+39
2020-11-29Improve error messageNadrieril-17/+32
2020-11-29Be consistent about linting singletonsNadrieril-19/+3
2020-11-29Rename the `overlapping_patterns` lint to `overlapping_range_endpoints`Nadrieril-33/+33
2020-11-29Add testsNadrieril-3/+19
2020-11-28Correctly detect `usize`/`isize` range overlapsNadrieril-2/+8
2020-11-21Improve integer range testsNadrieril-663/+892
2020-11-19Regroup many usefulness-related test in the same folderNadrieril-0/+751
2020-11-18Auto merge of #78995 - Nadrieril:clean-empty-match, r=varkorbors-55/+162
Handle empty matches cleanly in exhaustiveness checking This removes the special-casing of empty matches that was done in `check_match`. This fixes most of https://github.com/rust-lang/rust/issues/55123. Somewhat unrelatedly, I also made `_match.rs` more self-contained, because I think it's cleaner. r? `@varkor` `@rustbot` modify labels: +A-exhaustiveness-checking
2020-11-17Fix exhaustiveness in case a byte string literal is used at slice typeoli-2/+2
2020-11-16Add a test for foreign empty enumsNadrieril-48/+102
2020-11-12Handle empty matches cleanlyNadrieril-36/+43
2020-11-12Add testsNadrieril-42/+88
2020-11-01Fix #78549Nadrieril-0/+25
Before #78430, string literals worked because `specialize_constructor` didn't actually care too much which constructor was passed to it unless needed. Since then, string literals are special cased and a bit hacky. I did not anticipate patterns for the `&str` type other than string literals, hence this bug. This makes string literals less hacky.
2020-10-20Accidentally fixed #78071Nadrieril-24/+36
2020-10-18The only remaining constant patterns are opaqueNadrieril-9/+2
2020-10-18Destructure byte array constants to array patterns instead of keeping them ↵Oliver Scherer-2/+2
opaque
2020-10-18Add some testsNadrieril-0/+267
2020-09-20Implement destructuring for all aggregates and for referencesOliver Scherer-41/+143
2020-09-02pretty: trim paths of unique symbolsDan Aloni-10/+10
If a symbol name can only be imported from one place for a type, and as long as it was not glob-imported anywhere in the current crate, we can trim its printed path and print only the name. This has wide implications on error messages with types, for example, shortening `std::vec::Vec` to just `Vec`, as long as there is no other `Vec` importable anywhere. This adds a new '-Z trim-diagnostic-paths=false' option to control this feature. On the good path, with no diagnosis printed, we should try to avoid issuing this query, so we need to prevent trimmed_def_paths query on several cases. This change also relies on a previous commit that differentiates between `Debug` and `Display` on various rustc types, where the latter is trimmed and presented to the user and the former is not.
2020-07-27mv std libs to library/mark-3/+3
2020-07-05Address code reviewsYuki Okushi-10/+21
2020-07-05Explain exhaustive matching on {usize,isize} maximum valuesYuki Okushi-0/+46
2020-06-26Show the values and computation that would overflow a const evaluation or ↵Oliver Scherer-31/+31
propagation
2020-06-13Prefer the associated consts for pattern matching errorLzu Tao-25/+25
2020-05-23Remove out-of-date commentNadrieril-1/+0
2020-05-23Work around type normalization issuesNadrieril-0/+23
2020-05-17We don't use tyerr anymoreNadrieril-0/+22
This however unearthed a bug, hence the FIXME and the workaround.
2020-04-11rustc: Add a warning count upon completionRoccoDev-1/+3
2020-04-02tests: remove ignore directives from tests that mention core/alloc/std spans.Eduard-Mihai Burtescu-27/+12
2020-03-27non-exhastive diagnostic: add note re. scrutinee typeMazdak Farrokhzad-0/+108
2020-03-23Ignore tests on some platforms due to #53081Aaron Hill-12/+27
2020-03-22Store idents for `DefPathData` into crate metadataAaron Hill-0/+18
Previously, we threw away the `Span` associated with a definition's identifier when we encoded crate metadata, causing us to lose location and hygiene information. We now store the identifier's `Span` in the crate metadata. When we decode items from the metadata, we combine the name and span back into an `Ident`. This improves the output of several tests, which previously had messages suppressed due to dummy spans. This is a prerequisite for #68686, since throwing away a `Span` means that we lose hygiene information.
2020-03-17Update tests for erasing regions in typeckMatthew Jasper-2/+2
2020-01-24Normalise notes with the/isvarkor-17/+17
2020-01-20check_match: simplify check_armMazdak Farrokhzad-1/+3
2020-01-18slice_patterns: organize some testsMazdak Farrokhzad-0/+11
2020-01-18slice_patterns: remove gates in testsMazdak Farrokhzad-68/+55
2020-01-09Update testsVadim Petrochenkov-2/+24
2019-12-14Revert "Remove `#![feature(never_type)]` from tests."Niko Matsakis-1/+2
This reverts commit 8f6197f39f7d468dfc5b2bd41dae4769992a2f83.
2019-12-11Revert a diagnostic change in the case of integer rangesNadrieril-8/+8
2019-12-04Reuse `adt_defined_here`Nadrieril-10/+43
2019-12-04Use the default code path to list missing patternsNadrieril-48/+60
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-04List missing constructors in an almost empty matchNadrieril-71/+101
Actually empty matches are still handled by a different code path
2019-12-04Add testsNadrieril-65/+312