[Issue 6838] New: Covariant return types don't work with static arrays
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Oct 22 09:08:52 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6838
Summary: Covariant return types don't work with static arrays
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: pszturmaj at tlen.pl
--- Comment #0 from Piotr Szturmaj <pszturmaj at tlen.pl> 2011-10-22 09:07:48 PDT ---
This is an example from http://d-programming-language.org/function.html, but
with changed return types:
class Foo {
int[] test() { return null; }
}
class Bar : Foo {
int[2] test() { return [1, 2]; } // overrides and is covariant with
Foo.test()
}
// and here's additional test code:
void main() {
Foo f = new Bar();
auto arr = f.test();
assert(arr.length == 2);
}
This code compiles but fails on assert. Returned arr.length is 1 and accessing
the first element of that array results in access violation.
Given that static arrays are implicitly convertible to dynamic arrays, it
should work. If not, it at least should not compile.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list