The code

auto asStatic(T, size_t length)(T[length] arr)
{
    return arr;
}

@safe pure nothrow @nogc unittest
{
    auto x = [1, 2, 3].asStatic;
    static assert(is(typeof(x) == int[x.length]));
static assert(is(typeof([1, 2, 3].asStatic) == int[x.length]));
}


now fails on Git master (after DIP-1000 has been merged) as


array_ex.d(55,6): Error: parameter arr is 'return' but function does not return any indirections array_ex.d(63,23): Error: template instance array_ex.asStatic!(int, 3LU) error instantiating array_ex.d(64,5): Error: static assert (is(typeof(x) == int[x.length])) is false


I tried qualifying argument with `return ref` as described at

https://wiki.dlang.org/DIP25

but that fails because parameter must be allowed to be an r-value aswell.

Any clues?

Reply via email to