| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-12-11 | Extract exhaustiveness into its own crate | Nadrieril | -1648/+0 | |
| 2023-12-09 | Don't warn an empty pattern unreachable if we're not sure the data is valid | Nadrieril | -21/+64 | |
| 2023-12-09 | Track place validity | Nadrieril | -16/+106 | |
| 2023-12-09 | Correctly handle empty constructors | Nadrieril | -5/+1 | |
| - `ConstructorSet` knows about both empty and nonempty constructors; - If an empty constructor is present in the column, we output it in `split().present`. | ||||
| 2023-12-09 | Be precise about usefulness vs reachability | Nadrieril | -67/+131 | |
| 2023-12-02 | Anticipate allocation sizes | Nadrieril | -15/+8 | |
| 2023-11-22 | Separate `PatStack` and `MatrixRow` | Nadrieril | -42/+90 | |
| This disentangles the row-specific tracking of `parent_row` etc from the logical operation of specialization. This means `wildcard_row` doesn't need to provide dummy values for `parent_row` etc anymore. | ||||
| 2023-11-22 | Clarify the `Wildcard`/`Missing` situation | Nadrieril | -35/+51 | |
| 2023-11-22 | Cleanup span passing | Nadrieril | -16/+15 | |
| 2023-11-22 | Store wildcard row in the matrix | Nadrieril | -39/+48 | |
| 2023-11-22 | Fully rework the algorithm and its explanation | Nadrieril | -479/+635 | |
| 2023-11-22 | Keep rows with guards in the matrix | Nadrieril | -46/+38 | |
| 2023-11-22 | Abstract over the list of `WitnessStack`s | Nadrieril | -69/+106 | |
| 2023-11-21 | Fix `clippy::needless_borrow` in the compiler | Nilstrieb | -2/+2 | |
| `x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`. Then I had to remove a few unnecessary parens and muts that were exposed now. | ||||
| 2023-11-04 | Suggest to set lint level on whole match | Nadrieril | -10/+17 | |
| 2023-11-04 | Warn when lint level is set on a match arm | Nadrieril | -21/+41 | |
| 2023-11-01 | Auto merge of #116692 - Nadrieril:half-open-ranges, r=cjgillot | bors | -11/+12 | |
| Match usize/isize exhaustively with half-open ranges The long-awaited finale to the saga of [exhaustiveness checking for integers](https://github.com/rust-lang/rust/pull/50912)! ```rust match 0usize { 0.. => {} // exhaustive! } match 0usize { 0..usize::MAX => {} // helpful error message! } ``` Features: - Half-open ranges behave as expected for `usize`/`isize`; - Trying to use `0..usize::MAX` will tell you that `usize::MAX..` is missing and explain why. No more unhelpful "`_` is missing"; - Everything else stays the same. This should unblock https://github.com/rust-lang/rust/issues/37854. Review-wise: - I recommend looking commit-by-commit; - This regresses perf because of the added complexity in `IntRange`; hopefully not too much; - I measured each `#[inline]`, they all help a bit with the perf regression (tho I don't get why); - I did not touch MIR building; I expect there's an easy PR there that would skip unnecessary comparisons when the range is half-open. | ||||
| 2023-10-30 | Correctly handle nested or-patterns in column-wise analyses | Nadrieril | -1/+1 | |
| 2023-10-27 | Make IntRange exclusive | Nadrieril | -1/+1 | |
| 2023-10-27 | s/to_pat/to_diagnostic_pat/ | Nadrieril | -1/+1 | |
| 2023-10-27 | Propagate half-open ranges through exhaustiveness checking | Nadrieril | -3/+4 | |
| 2023-10-27 | Inline `RangeInclusive` into `IntRange` | Nadrieril | -9/+9 | |
| 2023-10-27 | Handle `ty::Opaque` correctly | Nadrieril | -1/+16 | |
| 2023-10-27 | Lint overlapping ranges as a separate pass | Nadrieril | -19/+85 | |
| 2023-10-27 | Abstract over per-column pattern traversal | Nadrieril | -36/+77 | |
| 2023-10-21 | Fix #117033 | Nadrieril | -0/+3 | |
| 2023-10-14 | Lint `non_exhaustive_omitted_patterns` per column | Nadrieril | -47/+106 | |
| 2023-10-14 | Distinguish user patterns from reconstructed witnesses | Nadrieril | -50/+57 | |
| 2023-10-03 | Clarify handling of hidden variants | Nadrieril | -9/+6 | |
| 2023-10-03 | Replace SplitWildcard with a cleaner ConstructorSet abstraction | Nadrieril | -78/+52 | |
| 2023-08-28 | Add note when matching on nested non-exhaustive enums | Sebastian Toh | -23/+26 | |
| 2023-07-25 | inline format!() args from rustc_codegen_llvm to the end (4) | Matthias Krüger | -2/+2 | |
| r? @WaffleLapkin | ||||
| 2023-05-16 | Document how constants as opaque patterns behave differently. | Oli Scherer | -0/+16 | |
| 2023-05-01 | fix doc test in mir_build for removing type ascription | yukang | -2/+1 | |
| 2023-04-06 | Auto merge of #108504 - cjgillot:thir-pattern, r=compiler-errors,Nilstrieb | bors | -11/+20 | |
| Check pattern refutability on THIR The current `check_match` query is based on HIR, but partially re-lowers HIR into THIR. This PR proposed to use the results of the `thir_body` query to check matches, instead of re-building THIR. Most of the diagnostic changes are spans getting shorter, or commas/semicolons not getting removed. This PR degrades the diagnostic for confusing constants in patterns (`let A = foo()` where `A` resolves to a `const A` somewhere): it does not point ot the definition of `const A` any more. | ||||
| 2023-04-03 | Rename hir_id to lint_root. | Camille GILLOT | -8/+16 | |
| 2023-04-03 | Only emit lint on refutable patterns. | Camille GILLOT | -3/+4 | |
| 2023-04-02 | Fix `non_exhaustive_omitted_patterns` lint span | clubby789 | -4/+4 | |
| 2023-04-01 | Fix `non_exhaustive_omitted_patterns` on arguments | clubby789 | -0/+3 | |
| 2023-01-11 | Migrate pattern matching | mejrs | -45/+14 | |
| 2023-01-11 | Migrate usefulness.rs | mejrs | -2/+19 | |
| 2022-12-13 | Combine projection and opaque into alias | Michael Goulet | -1/+1 | |
| 2022-11-20 | Change to Ty::is_inhabited_from | Cameron Steffen | -1/+1 | |
| 2022-10-14 | more dupe word typos | Rageking8 | -1/+1 | |
| 2022-10-01 | Refactor rustc lint API | Maybe Waffle | -3/+2 | |
| 2022-09-27 | rustc_typeck to rustc_hir_analysis | lcnr | -1/+1 | |
| 2022-09-16 | Revert "Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, ↵ | Oli Scherer | -1/+9 | |
| r=estebank"" This reverts commit 4a742a691e7dd2522bad68b86fe2fd5a199d5561. | ||||
| 2022-09-03 | Include enum path in variant suggestion | Michael Goulet | -1/+1 | |
| 2022-09-01 | tracing::instrument cleanup | Oli Scherer | -2/+1 | |
| 2022-08-22 | Rollup merge of #98200 - ouz-a:issue-98177, r=oli-obk | Dylan DPC | -4/+19 | |
| Expand potential inner `Or` pattern for THIR Code assumed there wouldn't be a deeper `Or` pattern inside expanded `PatStack` this fixes it by looking for the `Or` pattern inside expanded `PatStack`. A more ideal solution would be recursively doing this but I haven't found a good way to do that. _fixes #97898_ | ||||
