class A{} class B:A{} class C:A{} auto a = [new B, new C]; // Fails a clearly should be of type A[], but such is not the case.
I think this is a dupe, see bug 4030 and bug 3543
You're right. 3543 shows another problem too, and I focused mostly on that (the ?: example). *** This issue has been marked as a duplicate of issue 3543 ***