File tree 2 files changed +14
-2
lines changed
2 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -522,7 +522,7 @@ void destroy(T)(ref T obj) if (is(T == struct))
522
522
buf[] = init[];
523
523
}
524
524
525
- void destroy (T : U[n], U, size_t n)(ref T obj)
525
+ void destroy (T : U[n], U, size_t n)(ref T obj) if ( ! is (T == struct ))
526
526
{
527
527
obj[] = U.init;
528
528
}
Original file line number Diff line number Diff line change @@ -2374,7 +2374,7 @@ version(unittest) unittest
2374
2374
}
2375
2375
}
2376
2376
2377
- void destroy (T : U[n], U, size_t n)(ref T obj)
2377
+ void destroy (T : U[n], U, size_t n)(ref T obj) if ( ! is (T == struct ))
2378
2378
{
2379
2379
obj[] = U.init;
2380
2380
}
@@ -2388,6 +2388,18 @@ version(unittest) unittest
2388
2388
assert (a == [ 0 , 0 ]);
2389
2389
}
2390
2390
2391
+ unittest
2392
+ {
2393
+ static struct vec2f {
2394
+ float [2 ] values ;
2395
+ alias values this ;
2396
+ }
2397
+
2398
+ vec2f v;
2399
+ destroy ! vec2f(v);
2400
+ }
2401
+
2402
+
2391
2403
void destroy (T)(ref T obj)
2392
2404
if (! is (T == struct ) && ! is (T == interface ) && ! is (T == class ) && ! _isStaticArray! T)
2393
2405
{
You can’t perform that action at this time.
0 commit comments