class Foo { } class Bar : Foo { } void manam (Foo[] foos) { assert (foos[0] is Bar); } void main () { Bar[] bars = { new Bar () }; manam (bars); unowned Foo[] foos = bars; assert (foos[0] is Bar); }