September 25, 2010 [Issue 4939] New: Some compile-time length tests of array concats | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=4939 Summary: Some compile-time length tests of array concats Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid, diagnostic Severity: enhancement Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: bearophile_hugs@eml.cc --- Comment #0 from bearophile_hugs@eml.cc 2010-09-25 08:50:01 PDT --- This is a wrong D2 program, because the lengths of the arrays don't match: // Program #1 void main() { int[2] a1; int[3] a2; int[6] result; result[] = a1 ~ a2; } It compiles with no errors, because a1~a2 produces a dynamic array, despite its length is determined at compile-time. I'd like the compile to catch this bug at compile-time. The situation in Program #1 is not so common, but a little more refined implementation of the same kind of tests may catch at compile-time more common cases, like: // Program #2 void main() { int[] a1 = new int[2]; int[] a2 = new int[3]; int[6] result; result[] = a1 ~ a2; // Error a1 ~= 0; result[] = a1 ~ a2; } // Program #3 void main() { int[] a1 = new int[2]; int[] a2 = new int[3]; int[] result = new int[6]; result[] = a1 ~ a2; // Error } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation