Looks like a bug. Please file.
"bearophile" <bearophileh...@lycos.com> wrote in message
news:iv0eki$1d8e$1...@digitalmars.com...
> With DMD 2.053 the second assert of this program fires, is this a DMD bug
> or it's me that's missing something?
>
>
> struct Foo {
> int[] data;
>
> this(int n) {
> data.length = n;
> }
>
> this(this) {
> data = data.dup;
> }
> }
> void main() {
> Foo f1, f2;
> f1 = Foo(1);
> f2 = f1;
> assert(f1.data.ptr != f2.data.ptr); // OK
> f1 = f2 = Foo(1);
> assert(f1.data.ptr != f2.data.ptr); // asserts
> }
>
> Bye and thank you,
> bearophile