digitalmars.D.bugs - [Issue 24456] New: CTFE implicit conversion to void[] produces wrong
- d-bugmail puremagic.com (48/48) Mar 27 https://issues.dlang.org/show_bug.cgi?id=24456
https://issues.dlang.org/show_bug.cgi?id=24456 Issue ID: 24456 Summary: CTFE implicit conversion to void[] produces wrong length Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: Bastiaan Veelo.net ``` void check(void[] v, size_t len) { import std.conv; assert(v.length == len, "v.length is " ~ v.length.to!string ~ ", expected " ~ len.to!string); } int implicitConversion() { int[2] arr; check(arr, 8); return 42; } int noConversion() { ubyte[8] arr; check(arr, 8); return 42; } struct S { int i = implicitConversion; // Error: "v.length is 2, expected 8" int j = noConversion; // Fine } void main() { int i = implicitConversion; // Fine int j = noConversion; // Fine } ``` This problem surfaced while trying do statically initialize an instance of std.bitmanip.BitArray. --
Mar 27