// https://issues.dlang.org/show_bug.cgi?id=22175 struct Struct { short a = 24, b = 25, c = 26, d = 27; ubyte e = 28; } Struct foo() { Struct s; s.a = 60; s.b = 61; s.c = 62, s.d = 63; s.e = 64; return s; } Struct test(int i) { Struct var = i ? Struct() : foo(); Struct nest() { return var; } return nest(); } int main() { auto s = test(0); assert(s.a == 60); assert(s.b == 61); assert(s.c == 62); assert(s.d == 63); assert(s.e == 64); s = test(1); assert(s.a == 24); assert(s.b == 25); assert(s.c == 26); assert(s.d == 27); assert(s.e == 28); return 0; }