Change:
<ins> error[E0423]: expected value, found struct `S` --> $DIR/no-match-tuple-variant-self-ctor.rs:30:24 | LL |     struct S {} |     ----------- `S` defined here ... LL |             let Self = S; |                        ^ help: use struct literal syntax instead: `S {}` error[E0533]: expected unit struct, found self constructor `Self` --> $DIR/no-match-tuple-variant-self-ctor.rs:30:17 | LL |             let Self = S; |                 ^^^^ not a unit struct error: aborting due to 2 previous errors Some errors have detailed explanations: E0423, E0533. For more information about an error, try `rustc --explain E0423`. </ins>

Discussion:
<!-- [31mICE[0m: Rustc '' 'error: internal compiler error: pattern has unexpected type: pat: Pat { ty: FnDef(DefId(0:4 ~ 8AA6F1005370219B85951C99272A39FD19B661E1BACC8A2564FDDA6681DF61B2[9399]::S::{constructor}), []), span: 32:14 (), kind: Leaf { subpatterns: [] } }, ty: FnDef(DefId(0:4 ~ 8AA6F1005370219B85951C99272A39FD19B661E1BACC8A2564FDDA6681DF61B2[9399]::S::{constructor}), [])', 'error: internal compiler error: pattern has unexpected type: pat: Pat { ty: FnDef(DefId(0:4 ~ 8AA6F1005370219B85951C99272A39FD19B661E1BACC8A2564FDDA6681DF61B2[9399]::S::{constructor}), []), span: 32:14 (), kind: Leaf { subpatterns: [] } }, ty: FnDef(DefId(0:4 ~ 8AA6F1005370219B85951C99272A39FD19B661E1BACC8A2564FDDA6681DF61B2[9399]::S::{constructor}), [])' File: --auto-reduced (treereduce-rust): original: Version information ` Command: <!-- Include a backtrace in the code block by setting in your environment. E.g. .

--<details<summary<strongProgram output</strong</summary<p</p</details<!-- query stack: error: internal compiler error: pattern has unexpected type: pat: Pat { ty: FnDef(DefId(0:4 ~ mvce[320f]::S::{constructor}), []), span: 14:14 (), kind: Leaf { subpatterns: [] } }, ty: FnDef(DefId(0:4 ~ mvce[320f]::S::{constructor}), []) [checkmatch] match-checking [mirbuilt] building MIR for [checkunsafety] unsafety-checking [analysis] running analysis passes on this crate --
cc
This has ICEd before :
^Regression in nightly-2022-05-05 commit[0] 2022-05-03: Auto merge of - bjorn3:librarifyparseformat, r=davidtwco commit[1] 2022-05-03: Auto merge of - compiler-errors:unit-destructure-assign, r=nikomatsakis commit[2] 2022-05-04: Auto merge of - estebank:issue-, r=compiler-errors commit[3] 2022-05-04: Auto merge of - petrochenkov:docregr, r=GuillaumeGomez commit[4] 2022-05-04: Auto merge of - ehuss:update-cargo, r=ehuss commit[5] 2022-05-04: Auto merge of - JohnTitor:rollup-oo4fc1h, r=JohnTitor commit[6] 2022-05-04: Auto merge of - oli-obk:operandorder, r=davidtwco commit[7] 2022-05-04: Auto merge of - nnethercote:speed-up-Token-ident-lifetime, r=petrochenkov commit[8] 2022-05-04: Auto merge of - nnethercote:overhaul-MacArgs, r=petrochenkov would not be surprised if its actually :seeno_evil:
So only this specific case seems to be .

Matching tuple ctors in patterns and ICEing is older than that:
Regression in nightly-2020-11-19 fetching (via remote github) commits from max(, 2020-11-16) to ending github query because we found starting sha: getcommitsbetween returning commits, len: 6 commit[0] 2020-11-17: Auto merge of - m-ou-se:rollup-owel5ld, r=m-ou-se commit[1] 2020-11-18: Auto merge of - pietroalbini:beta-next, r=Mark-Simulacrum commit[2] 2020-11-18: Auto merge of - jyn514:from-inner, r=petrochenkov commit[3] 2020-11-18: Auto merge of - pietroalbini:woops, r=pietroalbini commit[4] 2020-11-18: Auto merge of - m-ou-se:rollup-4g15apk, r=m-ou-se commit[5] 2020-11-18: Auto merge of - Nadrieril:clean-empty-match, r=varkor