http://d.puremagic.com/issues/show_bug.cgi?id=10516
Andrej Mitrovic <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID --- Comment #1 from Andrej Mitrovic <[email protected]> 2013-06-30 19:01:18 PDT --- > ----- > void main() > { > enum HexSize = 5; > > // note: smaller initializer count > /* enum */ char[HexSize] srcHex = "1234"; > > char[HexSize] tgtHex = "12345"; > > assert(tgtHex[0 .. 4] == srcHex); > } > ----- > > $ dmd test.d > > object.Error: lengths don't match for array copy, 5 = 4 Actually this test-case is invalid because the error is thrown in the initializer line, not the comparison line. And another thing I just realized is that it's perfectly ok to compare static arrays of non-matching sizes, which makes the whole report invalid.. but I don't understand why this is allowed: void main() { char[5] srcHex = "12345"; char[3] tgtHex = "123"; assert(srcHex == tgtHex); } $ dmd test.d > core.exception.AssertError@test(5): Assertion failure I would have hoped to get a length mismatch error, or even a compile-time error. Oh well.. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
