DIP-1000 and return
Nordlöw via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Jan 1 09:41:46 PST 2017
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?
More information about the Digitalmars-d-learn
mailing list