Allow disabling of ergonomic features on a per-crate basis?

Sort of, it’s been a few weeks so I can’t exactly remember it, but it was like:

let SomeStruct { x } = *self; // or maybe it was just self

// call methods on x, unknowing x is itself a reference
// make some changes...
// consume x as value, error because x is not a value, confusion ensues.

Previously the destructuring would have tried to move x immediately, which either would have worked or given me an error to clone/copy it right away, wherein with match ergonomics it secretly became a reference.

Even with something that simple, there is a certain introduced ambiguity that I despise.

1 Like