Merge pull request #5790 from dlang/9il-patch-1

allow n=0 for std.meta.Repeat
merged-on-behalf-of: MetaLang <MetaLang@users.noreply.github.com>
This commit is contained in:
The Dlang Bot 2017-10-18 17:24:19 +02:00 committed by GitHub
commit 05e65e6086

View file

@ -1317,9 +1317,12 @@ private template SmartAlias(T...)
* Creates an `AliasSeq` which repeats a type or an `AliasSeq` exactly `n` times. * Creates an `AliasSeq` which repeats a type or an `AliasSeq` exactly `n` times.
*/ */
template Repeat(size_t n, TList...) template Repeat(size_t n, TList...)
if (n > 0)
{ {
static if (n == 1) static if (n == 0)
{
alias Repeat = AliasSeq!();
}
else static if (n == 1)
{ {
alias Repeat = AliasSeq!TList; alias Repeat = AliasSeq!TList;
} }
@ -1344,6 +1347,9 @@ if (n > 0)
/// ///
@safe unittest @safe unittest
{ {
alias ImInt0 = Repeat!(0, int);
static assert(is(ImInt0 == AliasSeq!()));
alias ImInt1 = Repeat!(1, immutable(int)); alias ImInt1 = Repeat!(1, immutable(int));
static assert(is(ImInt1 == AliasSeq!(immutable(int)))); static assert(is(ImInt1 == AliasSeq!(immutable(int))));