Iām inclined to agree, but let me play the Devilās advocate. What this is suggesting is a sort of sugar for an unwrap analogue. This makes the actual unwrap something like
match self {
Some(x) => x,
!
}
(Except that unwrap has a specific panic message but letās not get minor details in the way.)
Now, this is certainly not what the ! pattern is for, but I can see a sentiment of wanting to be able to write non-exhaustive matches that panic when theyāre not matched (this is default behavior of match in Scala, which is mostly a footgun but occasionally useful). See non-exhaustive let, which has been proposed in some way or another:
let Some(x)! = y; // strawman for purpose of example
// desug
let x = match y {
Some($x) => $x,
_ => panic!("match assertion failed"),
}