Regarding this argument, I don’t really find it makes much sense to me.
When you see someone write
x = (;a, b) = (;a=1, b=2, c=3, d=4)
do you really read that as
temp = (;a=1, b=2, c=3, d=4)
(;a, b) = temp
x = temp
?
For me, the code realllllly seems to suggest something more of the form
(;a, b) = (;a=1, b=2, c=3, d=4)
x = (;a, b)
Since we’re taught that (;a,b) = coll
is shorthand for a, b = coll.a, coll.b
, it seems straightforward to me that writing x = (;a, b) = coll
would be x = ((;a,b) = coll)
which is x = ((a, b) = coll.a, coll.b)
.
Similarly, I see
x = y::Float64 = 1
as absolutely saying x = (y::Float64 = 1)
and so suggesting both x
and y
should be Float64
.