Ideally, every nontrivial change should have a bugzilla entry, even if that means its created by whoever made the change. It's too easy to miss things otherwise.
Sent from my iPhone On Dec 14, 2011, at 3:11 AM, Jacob Carlborg <[email protected]> wrote: > On 2011-12-14 11:10, Walter Bright wrote: >> On 12/14/2011 1:59 AM, Jacob Carlborg wrote: >>> What happened to arrays in this release: >>> >>> void foo (Object[] a) {} >>> class Foo {} >>> >>> void main () >>> { >>> Foo[] b; >>> foo(b); >>> } >>> >>> The above code fails with the following message: >>> >>> main.d(54): Error: function main.foo (Object[] a) is not callable >>> using argument >>> types (Foo[]) >>> main.d(54): Error: cannot implicitly convert expression (b) of type >>> Foo[] to >>> Object[] >>> >>> Have I missed something, I can't find this in the changelog? >> >> I don't remember if there was a bugzilla entry for it, but it's the >> object slicing problem. The thing is, main() expects b to be an array of >> Foo's. If foo() replaces one of the array elements with an Object, then >> b is no longer an array of Foo's, and can crash. > > I think it would be good if it's in the changelog, even if there is no > bugzilla entry for it. > >> Note that if you write foo as: >> >> void foo(const(Object)[] a) >> >> it will work. > > Ok, thanks. > > -- > /Jacob Carlborg
