Commit c640b95
authored
Rollup merge of rust-lang#70413 - AminArria:match-pattern-incorrect-warning, r=Centril,Nadrieril,varkor
Fix incorrect pattern warning "unreachable pattern"
Fixes rust-lang#70372
Added `is_under_guard` parameter to `_match::is_useful` and only add it to the matrix if `false`
Tested with:
```rust
#![feature(or_patterns)]
fn main() {
match (3,42) {
(a,_) | (_,a) if a > 10 => {println!("{}", a)}
_ => ()
}
match Some((3,42)) {
Some((a, _)) | Some((_, a)) if a > 10 => {println!("{}", a)}
_ => ()
}
match Some((3,42)) {
Some((a, _) | (_, a)) if a > 10 => {println!("{}", a)}
_ => ()
}
}
```File tree
3 files changed
+63
-8
lines changed- src
- librustc_mir_build/hair/pattern
- test/ui/or-patterns
3 files changed
+63
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1619 | 1619 | | |
1620 | 1620 | | |
1621 | 1621 | | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
1622 | 1626 | | |
1623 | 1627 | | |
1624 | 1628 | | |
1625 | 1629 | | |
1626 | 1630 | | |
1627 | 1631 | | |
| 1632 | + | |
1628 | 1633 | | |
1629 | 1634 | | |
1630 | 1635 | | |
| |||
1653 | 1658 | | |
1654 | 1659 | | |
1655 | 1660 | | |
1656 | | - | |
| 1661 | + | |
1657 | 1662 | | |
1658 | 1663 | | |
1659 | 1664 | | |
| |||
1664 | 1669 | | |
1665 | 1670 | | |
1666 | 1671 | | |
1667 | | - | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
1668 | 1676 | | |
1669 | 1677 | | |
1670 | 1678 | | |
| |||
1712 | 1720 | | |
1713 | 1721 | | |
1714 | 1722 | | |
1715 | | - | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
1716 | 1735 | | |
1717 | 1736 | | |
1718 | 1737 | | |
| |||
1746 | 1765 | | |
1747 | 1766 | | |
1748 | 1767 | | |
1749 | | - | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
1750 | 1778 | | |
1751 | 1779 | | |
1752 | 1780 | | |
1753 | 1781 | | |
1754 | 1782 | | |
1755 | 1783 | | |
1756 | | - | |
| 1784 | + | |
| 1785 | + | |
1757 | 1786 | | |
1758 | 1787 | | |
1759 | 1788 | | |
| |||
1810 | 1839 | | |
1811 | 1840 | | |
1812 | 1841 | | |
| 1842 | + | |
1813 | 1843 | | |
1814 | 1844 | | |
1815 | 1845 | | |
1816 | 1846 | | |
1817 | 1847 | | |
1818 | 1848 | | |
1819 | 1849 | | |
1820 | | - | |
| 1850 | + | |
1821 | 1851 | | |
1822 | 1852 | | |
1823 | 1853 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
363 | | - | |
| 363 | + | |
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
414 | 417 | | |
415 | 418 | | |
416 | 419 | | |
| |||
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
0 commit comments