| // 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); | |
| } |