### Summary Match expressions with no arms should give a value of type `!` ### Reproducer I tried this code: ```rust pub enum X {} pub fn foo(x: X) { let _a: i32 = match x {}; } pub fn main() {} ``` ### Does the code make use of any (1.49) nightly feature ? - [ ] Nightly ### Godbolt link [link](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DEArgoKkl9ZATwDKjdAGFUtEywYSA7KUcAZPAZMADl3ACNMYhAfAAdUBUI7Bhc3D29SOITbAQCg0JYIqJ8rTBskoQImYgIU908uYsxrbIYKqoJckPDI6MtK6tq0hr72zvzC6IBKS1QTYmR2DhiTMIBqRndVgA1VgFIvACF9gBFdjQBBM/PltaoGVf5UCHVtyb3Dq9Wv1foCVYB9JggVZ4ADMACY9qDjqsWEwCMgEKtVO8jl5TqCjhcTlcrjcHvc4YEIG99mjjhxprROABWXiebi8VCcABKZj%2BClm80we3BoJ4pAImkp0wA1iBQV4AHQATgAbAAODQ0ySSOWSGlcGWa/ScST04WkZkcXgKEAaQXC6ZwWAwRAoVAsGJ0SLkShoJ0uqLELgKrgWmi0AiRM0QMKGsKBKoAT04AsjzGI0YA8mFtKUhYzSB62IJkwxaLGOFpSFgwiZgE4xLQzVmsHCjOJi7x8MQM3gAG6YWslzCqUomYOGwLB6nN/R4MLEGMuLCGgjEPAsOO8LvEMLxTDHTAN4C0QKgZvTKgGYAKABqeEwAHdkzFGCuZIIRGJ2FIn/IlGpDbpQfpDMY7ITmEZqQNMqAxC0tZMmui5YKBUDMGwICYPgLSkB2YgmIs4IaOCPCTNMJRlPYECOIM9S%2BAw6BjN0URcBk8SJAIFF6JkzEMLRBQ9AxxEtG0AyuHUeh8eU/QdIEXTcfRIyCaklHmKMknjDxRFcgsEhUrSBrjsaqymOYyCrFwUp%2BlKGirBAuCECQvL8pMvCZlohGkOKoKglK7led5PlyrqHD6qQy40tKCqSF4NLuXKELggqcoyvKpAMiWxqmualpHqQNr2rMBDLBYFAQB6zr0MQwSsIsBkIsZpkmb2aEkHg6B6Pwz6iOI76tZ%2BKjqOOv6kNe04xCuWkcHSSWGsayaDvlqyoFQ%2BnskZJlmRZEAuJ6pV2aCDkZc50wIJgTBYFEJL%2BYFy6SOCUpcDS4JqtFcpeF4XCghoGjSMlTKcGlFpOSKrkgLFUrxXFXDgrh%2BHhbdPhjqCOkpT9e2UlldrZRASDFV6bpFY6JU9MAyDIMQCgALQKMwMQKAgqAWIGwYk5Q4bjgmMaPqzSapumNiPjmjAEPmhaGmWFZVrQNaPvWAFNiWrbtl2Pa8H2A5DuOI5NIa%2B5TjOGCLCWC5Lo%2Ba4bko267vuRhWnwp4Xlet73gyApdS%2BHXSF1ig9T%2BegGJbVXAQh4GQUk0FGrBTXdvAEBIewqEcRhWE4XhBFEU07akeRQlDFRNHKXRbFMS0rEMexLRcRMvGpyRrTiUXliV/x4llzxsk1JnCmN7n0maTMcwaVwo3jV9RqcMicWk%2BqqwAOJOE4LJCJZ0%2Bz/PcLmJEbxWQ1xB2f3jlWmKEoeT5R9eedvDBQqIPKjKXiSKC2qqkqCoTbpSNmn9Vvo0guX5TjWOleVyEOBVWWrVcyStN5NRarIF2b43ayA9t%2BPqehBpMGGoyAeCNvocGmnlQcc0FqqDHhPRec8F4z1ISvBm68Nr4y3rsPkO9kYuUOsdHoZ0xwXRAJIEyd9JB4RpHKD6NJNQynBM/RGJpLDpX%2Bi5Nyh9j5H38vDcRWDd5HlGuCTBw9JEyOmGuBI9hJBAA%3D) ### Actual behavior ``` <source>:4:5: error: mismatched types, expected 'i32' but got '()' [E0308] 4 | let _a: i32 = match x {}; | ^~~ ~~~ ~~~~~ ``` ### Expected behavior No error ### GCC Version GCCRS master on godbolt