You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`_d_newarray{mTX,miTX,OpT}` are converted to a single template: `_d_newarraymTX`
The template `_d_newarraymTX` now uses DBI to check what type of initialiser is required by the type of the elements in the array.
Thus it replaces both `_d_newarraymTX` and `_d_newarraymiTX`.
`_d_newarrayOpT` was the generic implementation of both of the above hooks.
It first allocated the "outer" arrays as pointer arrays and then it called either `_d_newarrayT` or `_d_newarrayiT`, to allocate initialise the "inner" 1-dimensional arrays accordingly.
Now this is no longer needed due to the merge between `_d_newarraymTX` and `_d_newarraymiTX`.
Now the compiler performs the following lowering:
---
S[][] s = new S[][](2, 3)
// is now lowered to:
S[] s = _d_newarraymTX!(S[][], S)([2, 3]);
---
This change adds the new template to `core.internal.array.construction`.