Namespace:

void main() {
        int[] arr0 = [1, 2, 3];
        assert(is(typeof(arr0) == int[]));
        assert(arr0 == [1, 2, 3]);

        int[3] arr1 = [4, 5, 6]s;
        assert(is(typeof(arr1) == int[3]));
        assert(arr1 == [4, 5, 6]);

        int[] arr2 = [7, 8, 9]s;
        assert(is(typeof(arr2) == int[/*3*/]));
        assert(arr2 == [7, 8, 9]);

        int[$] arr_a1 = [54, 74, 90, 2010];
        assert(is(typeof(arr_a1) == int[4]));
        assert(arr_a1 == [54, 74, 90, 2010]);

        int[$] arr_a2 = [2010, 90, 74, 54]s;
        assert(is(typeof(arr_a2) == int[4]));
        assert(arr_a2 == [2010, 90, 74, 54]);

        foo([1, 2, 3]);
        foo([4, 5, 6]s);

        bar([44, 55, 66]s);

        auto arr3 = [111, 222, 333];
        assert(is(typeof(arr3) == int[]));

        auto arr4 = [444, 555, 666]s;
        assert(is(typeof(arr4) == int[3]));

        quatz([3, 2, 1]);
        quatz([8, 7, 6]s);
}

Very good, this seems a step forward for D. Are you going to create two pull requests for dmd? (it will not be accepted before dmd 2.066).

Is it also guarding against this?
http://d.puremagic.com/issues/show_bug.cgi?id=3849

That in short is this mistake (this currently doesn't give errors):

string[3] a = ["red""green","blue"];
void main() {}

Bye,
bearophile

Reply via email to