[Issue 8950] postblit not called on const static array initialization
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Oct 17 16:20:11 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=8950
kinke <kinke at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kinke at gmx.net
--- Comment #3 from kinke <kinke at gmx.net> ---
Copy ctors are currently (wrongly) ignored when copying static arrays:
https://issues.dlang.org/show_bug.cgi?id=20365
This issue here is pretty bad and inconsistent - the postblit is called
correctly for mutable copies and scalar non-mutable copies, only non-mutable
static array copies ignore the postblit:
void main()
{
static struct S
{
int x = 42;
this(this) { x += 10; }
}
{
S source;
S mutableCopy = source;
assert(mutableCopy.x == 52);
const S constCopy = source;
assert(constCopy.x == 52);
}
{
S[1] source;
auto mutableCopy = source;
assert(mutableCopy[0].x == 52);
const constCopy = source;
assert(constCopy[0].x == 52); // fails
immutable immutableCopy = source;
assert(immutableCopy[0].x == 52); // fails
}
}
--
More information about the Digitalmars-d-bugs
mailing list