http://d.puremagic.com/issues/show_bug.cgi?id=9165
Summary: Auto conversion from dynamic array to fixed size array
at return
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: DMD
AssignedTo: [email protected]
ReportedBy: [email protected]
--- Comment #0 from [email protected] 2012-12-16 17:16:13 PST ---
int[2] foo() {
return [1, 2].dup;
}
int[2] bar() {
int[2] __aux = [1, 2].dup;
return __aux;
}
void main() {}
DMD 2.061alpha gives:
test.d(2): Error: cannot implicitly convert expression (_adDupT(&
D11TypeInfo_Ai6__initZ, [1, 2])) of type int[] to int[2u]
If possible I'd like to write code as in foo() instead of using a temporary
fixed sized array as in bar(). I presume in foo() the data needs to be copied
to the stack any way, so probably foo() should just be syntax sugar for bar().
The same problem happens for std.array.array():
int[2] spam() {
return [1, 2].array();
}
But it doesn't happen for an array literal:
int[2] baz() {
return [1, 2];
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------