March 18, 2014 [Issue 12402] New: Improved typing for array concatenation | ||||
---|---|---|---|---|
| ||||
https://d.puremagic.com/issues/show_bug.cgi?id=12402 Summary: Improved typing for array concatenation Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: bearophile_hugs@eml.cc --- Comment #0 from bearophile_hugs@eml.cc 2014-03-18 05:14:14 PDT --- int[5] foo(int[2] a, int[3] b) { typeof(return) result = a ~ b; // OK return result; } int[5] bar(int[2] a, int[3] b) { return a ~ b; // Error } void main() {} DMD 2.066alpha gives: test2.d(6,12): Error: cannot implicitly convert expression (cast(int[])a ~ cast(int[])b) of type int[] to int[5] I suggest to support the code in bar() too. (A small optimization can even remove any heap allocations from the bar() function). I am not sure, but perhaps the solution is similar to a value range propagation: to propagate the statically known length of an array. (Expecially for immutable arrays, as in Issue 10594 ). -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation