// https://issues.dlang.org/show_bug.cgi?id=21357 // PERMUTE_ARGS: struct BatchState { int[10] arr; BatchState copy() { auto ret = BatchState(arr); arr[0] += 1; return ret; } } struct GrayArea { BatchState low; this(this) { low = low.copy; } } void main() { GrayArea a; a.low.arr[0] = 1; GrayArea b; b.low.arr[0] = 4; b = a; // calls the postblit assert(a.low.arr[0] == 1); assert(b.low.arr[0] == 1); }