// REQUIRED_ARGS: -preview=dip1000 | |
// Test that scope inference works even with non POD array assignment | |
// This is tricky because it gets lowered to something like: | |
// (S[] __assigntmp0 = e[]) , _d_arrayassign_l(this.e[], __assigntmp0) , this.e[]; | |
@safe: | |
struct File | |
{ | |
void* f; | |
~this() scope { } | |
} | |
struct Vector | |
{ | |
File[] e; | |
auto assign(File[] e) | |
{ | |
this.e[] = e[]; // slice copy | |
} | |
} | |
void test(scope File[] arr, Vector v) | |
{ | |
v.assign(arr); | |
} |