// https://bugzilla.gdcproject.org/show_bug.cgi?id=183 // { dg-do compile } struct S183a { union I183a { struct { double x, y, z; } struct { double a, b, c; } } I183a inner; this(double x, double y, double z) { this.inner.x = x; this.inner.y = y; this.inner.z = z; } } struct S183b { @property get() { union Buf { void[0] result; } const Buf buf = { }; return buf.result; } } struct S183c { @property get() { union Buf { TypeInfo info; void[0] result; } const Buf buf = { }; return buf.result; } } void test183() { auto v1 = S183a(0, 0, 0); auto v2 = S183b().get; auto v3 = S183c().get; }