Consider:
struct Foo
{
int bar;
}
void processFoo(Foo foo)
{
}
void main()
{
Foo f = {bar: 5};
processFoo(f); // ok
processFoo(Foo(5)); // ok
processFoo({bar: 5}); // fail
processFoo(Foo({bar: 5})); // fail
}
Whyyyy D? It makes no sense, the compiler knows what is the type
of the first processFoo arg anyway...