If you want to use this particular example, the reader is right to ask: “what about 42u64?”. A different example might show your point better.
Unfortunately, no. Given the form:
fn main() {
struct MyStruct { a: u64 }
let MyStruct { a: foobar } = MyStruct { a: 1 };
}
I would suspect that this is making the typing judgement a : foobar.
I don’t know about “objectively”; but my view is at least that it would be quite confusing / misleading.
That said, the current rebind-as syntax is also terribly confusing (with typing judgements).
A possible non-confusing syntax would be:
fn main() {
struct MyStruct { a: u64 }
let MyStruct { a as foobar } = MyStruct { a: 1 };
}