struct A { int x } struct B { int x; int y } A f() { return new A {x = 3}; } B g() { return new B {x = 3; y = 4}; } int l() { var x = g; x = f; return 3; }