Fix isInnerClass for templates, sort unittest attributes
This commit is contained in:
parent
85ad88bc4d
commit
17005e4ac9
@ -61,7 +61,7 @@ if (Args.length > 0 && isTemplate!pred)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool cmp(alias T, alias U) = T < U;
|
enum bool cmp(alias T, alias U) = T < U;
|
||||||
static assert(Min!(cmp, 8, 4, 5, 3, 13) == 3);
|
static assert(Min!(cmp, 8, 4, 5, 3, 13) == 3);
|
||||||
@ -108,7 +108,7 @@ if (Args.length > 0 && isTemplate!pred)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool cmp(alias T, alias U) = T < U;
|
enum bool cmp(alias T, alias U) = T < U;
|
||||||
static assert(Max!(cmp, 8, 4, 5, 3, 13) == 13);
|
static assert(Max!(cmp, 8, 4, 5, 3, 13) == 13);
|
||||||
@ -180,7 +180,7 @@ if (Tuples.length > 0
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias Result1 = ZipWith!(AliasSeq,
|
alias Result1 = ZipWith!(AliasSeq,
|
||||||
Tuple!(1, 2),
|
Tuple!(1, 2),
|
||||||
@ -242,7 +242,7 @@ template Tuple(Args...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias A = Tuple!(short);
|
alias A = Tuple!(short);
|
||||||
alias B = Tuple!(3, 8, 9);
|
alias B = Tuple!(3, 8, 9);
|
||||||
@ -280,7 +280,7 @@ template Set(Args...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias S1 = Set!(int, 5, 5, int, 4);
|
alias S1 = Set!(int, 5, 5, int, 4);
|
||||||
static assert(S1.length == 3);
|
static assert(S1.length == 3);
|
||||||
@ -315,7 +315,7 @@ if (allSatisfy!(ApplyLeft!(isInstanceOf, Set), Sets))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias S1 = Set!(2, 5, 8, 4);
|
alias S1 = Set!(2, 5, 8, 4);
|
||||||
alias S2 = Set!(3, 8, 4, 1);
|
alias S2 = Set!(3, 8, 4, 1);
|
||||||
@ -368,7 +368,7 @@ if (allSatisfy!(ApplyLeft!(isInstanceOf, Set), Sets))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias S1 = Set!(2, 5, 8, 4);
|
alias S1 = Set!(2, 5, 8, 4);
|
||||||
alias S2 = Set!(3, 8, 4, 1);
|
alias S2 = Set!(3, 8, 4, 1);
|
||||||
@ -415,7 +415,7 @@ if (isInstanceOf!(Set, S1) && isInstanceOf!(Set, S2))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias S1 = Set!(2, 5, 8, 4);
|
alias S1 = Set!(2, 5, 8, 4);
|
||||||
alias S2 = Set!(3, 8, 4, 1);
|
alias S2 = Set!(3, 8, 4, 1);
|
||||||
@ -458,7 +458,7 @@ if (Args.length == 2 && isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(isLessEqual!(boolCmp, byte, int));
|
static assert(isLessEqual!(boolCmp, byte, int));
|
||||||
@ -505,7 +505,7 @@ if (Args.length == 2 && isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(!isGreaterEqual!(boolCmp, byte, int));
|
static assert(!isGreaterEqual!(boolCmp, byte, int));
|
||||||
@ -552,7 +552,7 @@ if (Args.length == 2 && isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(isLess!(boolCmp, byte, int));
|
static assert(isLess!(boolCmp, byte, int));
|
||||||
@ -599,7 +599,7 @@ if (Args.length == 2 && isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
enum bool boolCmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(!isGreater!(boolCmp, byte, int));
|
static assert(!isGreater!(boolCmp, byte, int));
|
||||||
@ -644,7 +644,7 @@ if (Args.length == 2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isEqual!(int, int));
|
static assert(isEqual!(int, int));
|
||||||
static assert(isEqual!(8, 8));
|
static assert(isEqual!(8, 8));
|
||||||
@ -674,7 +674,7 @@ if (Args.length == 2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(!isNotEqual!(int, int));
|
static assert(!isNotEqual!(int, int));
|
||||||
static assert(isNotEqual!(5, int));
|
static assert(isNotEqual!(5, int));
|
||||||
@ -693,7 +693,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias Instantiate(alias T, Args...) = T!Args;
|
alias Instantiate(alias T, Args...) = T!Args;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
template Template(T)
|
template Template(T)
|
||||||
{
|
{
|
||||||
@ -738,7 +738,7 @@ alias Alias(alias T) = T;
|
|||||||
alias Alias(T) = T;
|
alias Alias(T) = T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Alias!int));
|
static assert(is(Alias!int));
|
||||||
|
|
||||||
@ -769,7 +769,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias AliasSeq(Args...) = Args;
|
alias AliasSeq(Args...) = Args;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(typeof({ alias T = AliasSeq!(short, 5); })));
|
static assert(is(typeof({ alias T = AliasSeq!(short, 5); })));
|
||||||
static assert(is(typeof({ alias T = AliasSeq!(int, short, 5); })));
|
static assert(is(typeof({ alias T = AliasSeq!(int, short, 5); })));
|
||||||
@ -817,7 +817,7 @@ if (isTemplate!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(allSatisfy!(isSigned, int, short, byte, long));
|
static assert(allSatisfy!(isSigned, int, short, byte, long));
|
||||||
static assert(!allSatisfy!(isUnsigned, uint, ushort, float, ulong));
|
static assert(!allSatisfy!(isUnsigned, uint, ushort, float, ulong));
|
||||||
@ -855,7 +855,7 @@ if (isTemplate!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(anySatisfy!(isSigned, int, short, byte, long));
|
static assert(anySatisfy!(isSigned, int, short, byte, long));
|
||||||
static assert(anySatisfy!(isUnsigned, uint, ushort, float, ulong));
|
static assert(anySatisfy!(isUnsigned, uint, ushort, float, ulong));
|
||||||
@ -902,7 +902,7 @@ template staticIndexOf(alias T, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(staticIndexOf!(int) == -1);
|
static assert(staticIndexOf!(int) == -1);
|
||||||
static assert(staticIndexOf!(int, int) == 0);
|
static assert(staticIndexOf!(int, int) == 0);
|
||||||
@ -933,7 +933,7 @@ template canFind(alias T, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(!canFind!(int));
|
static assert(!canFind!(int));
|
||||||
static assert(canFind!(int, int));
|
static assert(canFind!(int, int));
|
||||||
@ -973,7 +973,7 @@ if (allSatisfy!(isTemplate, Preds))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias isMutableInt = templateAnd!(isIntegral, isMutable);
|
alias isMutableInt = templateAnd!(isIntegral, isMutable);
|
||||||
static assert(isMutableInt!int);
|
static assert(isMutableInt!int);
|
||||||
@ -1021,7 +1021,7 @@ if (allSatisfy!(isTemplate, Preds))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias isMutableOrInt = templateOr!(isIntegral, isMutable);
|
alias isMutableOrInt = templateOr!(isIntegral, isMutable);
|
||||||
static assert(isMutableOrInt!int);
|
static assert(isMutableOrInt!int);
|
||||||
@ -1051,7 +1051,7 @@ if (isTemplate!pred)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias isNotIntegral = templateNot!isIntegral;
|
alias isNotIntegral = templateNot!isIntegral;
|
||||||
static assert(!isNotIntegral!int);
|
static assert(!isNotIntegral!int);
|
||||||
@ -1095,7 +1095,7 @@ if (isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum cmp(T, U) = T.sizeof < U.sizeof;
|
enum cmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(isSorted!(cmp));
|
static assert(isSorted!(cmp));
|
||||||
@ -1104,7 +1104,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
static assert(!isSorted!(cmp, long, byte, ubyte, short, uint));
|
static assert(!isSorted!(cmp, long, byte, ubyte, short, uint));
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum cmp(int x, int y) = x - y;
|
enum cmp(int x, int y) = x - y;
|
||||||
static assert(isSorted!(cmp));
|
static assert(isSorted!(cmp));
|
||||||
@ -1116,7 +1116,7 @@ private pure nothrow @safe @nogc unittest
|
|||||||
static assert(isSorted!(cmp, 32, 32));
|
static assert(isSorted!(cmp, 32, 32));
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum cmp(int x, int y) = x < y;
|
enum cmp(int x, int y) = x < y;
|
||||||
static assert(isSorted!(cmp));
|
static assert(isSorted!(cmp));
|
||||||
@ -1142,7 +1142,7 @@ template ApplyLeft(alias T, Args...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias allAreIntegral = ApplyLeft!(allSatisfy, isIntegral);
|
alias allAreIntegral = ApplyLeft!(allSatisfy, isIntegral);
|
||||||
static assert(allAreIntegral!(int, uint));
|
static assert(allAreIntegral!(int, uint));
|
||||||
@ -1163,7 +1163,7 @@ template ApplyRight(alias T, Args...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias intIs = ApplyRight!(allSatisfy, int);
|
alias intIs = ApplyRight!(allSatisfy, int);
|
||||||
static assert(intIs!(isIntegral));
|
static assert(intIs!(isIntegral));
|
||||||
@ -1191,7 +1191,7 @@ if (n > 0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Repeat!(1, uint, int) == AliasSeq!(uint, int)));
|
static assert(is(Repeat!(1, uint, int) == AliasSeq!(uint, int)));
|
||||||
static assert(is(Repeat!(2, uint, int) == AliasSeq!(uint, int, uint, int)));
|
static assert(is(Repeat!(2, uint, int) == AliasSeq!(uint, int, uint, int)));
|
||||||
@ -1249,7 +1249,7 @@ template Replace(alias T, alias U, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Replace!(int, uint, int) == AliasSeq!(uint)));
|
static assert(is(Replace!(int, uint, int) == AliasSeq!(uint)));
|
||||||
static assert(is(Replace!(int, uint, short, int, int, ushort)
|
static assert(is(Replace!(int, uint, short, int, int, ushort)
|
||||||
@ -1312,7 +1312,7 @@ template ReplaceAll(alias T, alias U, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(ReplaceAll!(int, uint, int) == AliasSeq!(uint)));
|
static assert(is(ReplaceAll!(int, uint, int) == AliasSeq!(uint)));
|
||||||
static assert(is(ReplaceAll!(int, uint, short, int, int, ushort)
|
static assert(is(ReplaceAll!(int, uint, short, int, int, ushort)
|
||||||
@ -1340,7 +1340,7 @@ template Reverse(L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Reverse!(byte, short, int) == AliasSeq!(int, short, byte)));
|
static assert(is(Reverse!(byte, short, int) == AliasSeq!(int, short, byte)));
|
||||||
}
|
}
|
||||||
@ -1368,7 +1368,7 @@ if (isTemplate!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Map!(Unqual, const int, immutable short)
|
static assert(is(Map!(Unqual, const int, immutable short)
|
||||||
== AliasSeq!(int, short)));
|
== AliasSeq!(int, short)));
|
||||||
@ -1429,14 +1429,14 @@ if (isTemplate!cmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum cmp(T, U) = T.sizeof < U.sizeof;
|
enum cmp(T, U) = T.sizeof < U.sizeof;
|
||||||
static assert(is(Sort!(cmp, long, short, byte, int)
|
static assert(is(Sort!(cmp, long, short, byte, int)
|
||||||
== AliasSeq!(byte, short, int, long)));
|
== AliasSeq!(byte, short, int, long)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum cmp(int T, int U) = T - U;
|
enum cmp(int T, int U) = T - U;
|
||||||
static assert(Sort!(cmp, 5, 17, 9, 12, 2, 10, 14)
|
static assert(Sort!(cmp, 5, 17, 9, 12, 2, 10, 14)
|
||||||
@ -1460,7 +1460,7 @@ template DerivedToFront(L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -1501,7 +1501,7 @@ template MostDerived(T, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -1554,7 +1554,7 @@ template Erase(alias T, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Erase!(int, short, int, int, uint) == AliasSeq!(short, int, uint)));
|
static assert(is(Erase!(int, short, int, int, uint) == AliasSeq!(short, int, uint)));
|
||||||
static assert(is(Erase!(int, short, uint) == AliasSeq!(short, uint)));
|
static assert(is(Erase!(int, short, uint) == AliasSeq!(short, uint)));
|
||||||
@ -1597,7 +1597,7 @@ template EraseAll(alias T, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(EraseAll!(int, short, int, int, uint) == AliasSeq!(short, uint)));
|
static assert(is(EraseAll!(int, short, int, int, uint) == AliasSeq!(short, uint)));
|
||||||
static assert(is(EraseAll!(int, short, uint) == AliasSeq!(short, uint)));
|
static assert(is(EraseAll!(int, short, uint) == AliasSeq!(short, uint)));
|
||||||
@ -1632,7 +1632,7 @@ template Filter(alias pred, L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Filter!(isIntegral, real, int, bool, uint) == AliasSeq!(int, uint)));
|
static assert(is(Filter!(isIntegral, real, int, bool, uint) == AliasSeq!(int, uint)));
|
||||||
}
|
}
|
||||||
@ -1659,7 +1659,7 @@ template NoDuplicates(L...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias Types = AliasSeq!(int, uint, int, short, short, uint);
|
alias Types = AliasSeq!(int, uint, int, short, short, uint);
|
||||||
static assert(is(NoDuplicates!Types == AliasSeq!(int, uint, short)));
|
static assert(is(NoDuplicates!Types == AliasSeq!(int, uint, short)));
|
||||||
@ -1702,7 +1702,7 @@ template aliasSeqOf(alias range)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(aliasSeqOf!([0, 1, 2, 3]) == AliasSeq!(0, 1, 2, 3));
|
static assert(aliasSeqOf!([0, 1, 2, 3]) == AliasSeq!(0, 1, 2, 3));
|
||||||
}
|
}
|
||||||
@ -1735,7 +1735,7 @@ if (n > 0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(Stride!(3, 1, 2, 3, 4, 5, 6, 7, 8) == AliasSeq!(1, 4, 7));
|
static assert(Stride!(3, 1, 2, 3, 4, 5, 6, 7, 8) == AliasSeq!(1, 4, 7));
|
||||||
static assert(Stride!(2, 1, 2, 3) == AliasSeq!(1, 3));
|
static assert(Stride!(2, 1, 2, 3) == AliasSeq!(1, 3));
|
||||||
@ -1770,7 +1770,7 @@ if (T.length == 2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Select!(true, int, float) == int));
|
static assert(is(Select!(true, int, float) == int));
|
||||||
static assert(is(Select!(false, int, float) == float));
|
static assert(is(Select!(false, int, float) == float));
|
||||||
|
@ -45,7 +45,7 @@ import tanya.meta.transform;
|
|||||||
enum bool isWideString(T) = is(T : const dchar[]) && !isStaticArray!T;
|
enum bool isWideString(T) = is(T : const dchar[]) && !isStaticArray!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isWideString!(dchar[]));
|
static assert(isWideString!(dchar[]));
|
||||||
static assert(!isWideString!(char[]));
|
static assert(!isWideString!(char[]));
|
||||||
@ -101,7 +101,7 @@ if (Args.length >= 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Smallest!(int, ushort, uint, short) == ushort));
|
static assert(is(Smallest!(int, ushort, uint, short) == ushort));
|
||||||
static assert(is(Smallest!(short) == short));
|
static assert(is(Smallest!(short) == short));
|
||||||
@ -136,7 +136,7 @@ enum bool isComplex(T) = is(Unqual!(OriginalType!T) == cfloat)
|
|||||||
|| is(Unqual!(OriginalType!T) == ireal);
|
|| is(Unqual!(OriginalType!T) == ireal);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isComplex!cfloat);
|
static assert(isComplex!cfloat);
|
||||||
static assert(isComplex!ifloat);
|
static assert(isComplex!ifloat);
|
||||||
@ -163,7 +163,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isPOD(T) = __traits(isPOD, T);
|
enum bool isPOD(T) = __traits(isPOD, T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S1
|
struct S1
|
||||||
{
|
{
|
||||||
@ -199,7 +199,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum size_t sizeOf(T) = T.sizeof;
|
enum size_t sizeOf(T) = T.sizeof;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(sizeOf!(bool function()) == size_t.sizeof);
|
static assert(sizeOf!(bool function()) == size_t.sizeof);
|
||||||
static assert(sizeOf!bool == 1);
|
static assert(sizeOf!bool == 1);
|
||||||
@ -220,7 +220,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum size_t alignOf(T) = T.alignof;
|
enum size_t alignOf(T) = T.alignof;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(alignOf!bool == bool.alignof);
|
static assert(alignOf!bool == bool.alignof);
|
||||||
static assert(is(typeof(alignOf!bool) == typeof(bool.alignof)));
|
static assert(is(typeof(alignOf!bool) == typeof(bool.alignof)));
|
||||||
@ -243,7 +243,7 @@ if (Args.length == 2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isSame!("string", "string"));
|
static assert(isSame!("string", "string"));
|
||||||
static assert(!isSame!(string, immutable(char)[]));
|
static assert(!isSame!(string, immutable(char)[]));
|
||||||
@ -266,7 +266,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isTemplate(alias T) = __traits(isTemplate, T);
|
enum bool isTemplate(alias T) = __traits(isTemplate, T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S(T)
|
struct S(T)
|
||||||
{
|
{
|
||||||
@ -338,7 +338,7 @@ template hasStaticMember(T, string member)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S
|
struct S
|
||||||
{
|
{
|
||||||
@ -380,7 +380,7 @@ enum bool isFloatingPoint(T) = is(Unqual!(OriginalType!T) == double)
|
|||||||
|| is(Unqual!(OriginalType!T) == real);
|
|| is(Unqual!(OriginalType!T) == real);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isFloatingPoint!float);
|
static assert(isFloatingPoint!float);
|
||||||
static assert(isFloatingPoint!double);
|
static assert(isFloatingPoint!double);
|
||||||
@ -420,7 +420,7 @@ enum bool isSigned(T) = is(Unqual!(OriginalType!T) == byte)
|
|||||||
|| isFloatingPoint!T;
|
|| isFloatingPoint!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isSigned!byte);
|
static assert(isSigned!byte);
|
||||||
static assert(isSigned!short);
|
static assert(isSigned!short);
|
||||||
@ -461,7 +461,7 @@ enum bool isUnsigned(T) = is(Unqual!(OriginalType!T) == ubyte)
|
|||||||
|| is(Unqual!(OriginalType!T) == ulong);
|
|| is(Unqual!(OriginalType!T) == ulong);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isUnsigned!ubyte);
|
static assert(isUnsigned!ubyte);
|
||||||
static assert(isUnsigned!ushort);
|
static assert(isUnsigned!ushort);
|
||||||
@ -505,7 +505,7 @@ enum bool isIntegral(T) = isUnsigned!T
|
|||||||
|| is(Unqual!(OriginalType!T) == long);
|
|| is(Unqual!(OriginalType!T) == long);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isIntegral!ubyte);
|
static assert(isIntegral!ubyte);
|
||||||
static assert(isIntegral!byte);
|
static assert(isIntegral!byte);
|
||||||
@ -529,7 +529,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isNumeric(T) = isIntegral!T || isFloatingPoint!T || isComplex!T;
|
enum bool isNumeric(T) = isIntegral!T || isFloatingPoint!T || isComplex!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias F = float;
|
alias F = float;
|
||||||
static assert(isNumeric!F);
|
static assert(isNumeric!F);
|
||||||
@ -550,7 +550,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isBoolean(T) = is(Unqual!(OriginalType!T) == bool);
|
enum bool isBoolean(T) = is(Unqual!(OriginalType!T) == bool);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isBoolean!bool);
|
static assert(isBoolean!bool);
|
||||||
static assert(isBoolean!(shared const bool));
|
static assert(isBoolean!(shared const bool));
|
||||||
@ -603,7 +603,7 @@ enum bool isSomeChar(T) = is(Unqual!(OriginalType!T) == char)
|
|||||||
|| is(Unqual!(OriginalType!T) == dchar);
|
|| is(Unqual!(OriginalType!T) == dchar);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isSomeChar!char);
|
static assert(isSomeChar!char);
|
||||||
static assert(isSomeChar!wchar);
|
static assert(isSomeChar!wchar);
|
||||||
@ -635,7 +635,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isScalarType(T) = isNumeric!T || isBoolean!T || isSomeChar!T;
|
enum bool isScalarType(T) = isNumeric!T || isBoolean!T || isSomeChar!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isScalarType!int);
|
static assert(isScalarType!int);
|
||||||
static assert(!isScalarType!(int[]));
|
static assert(!isScalarType!(int[]));
|
||||||
@ -657,7 +657,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isBasicType(T) = isScalarType!T || is(T : void);
|
enum bool isBasicType(T) = isScalarType!T || is(T : void);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static struct S
|
static struct S
|
||||||
{
|
{
|
||||||
@ -700,7 +700,7 @@ template isPointer(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isPointer!(bool*));
|
static assert(isPointer!(bool*));
|
||||||
static assert(isPointer!(const bool*));
|
static assert(isPointer!(const bool*));
|
||||||
@ -733,7 +733,7 @@ template isArray(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isArray!(bool[]));
|
static assert(isArray!(bool[]));
|
||||||
static assert(isArray!(const bool[]));
|
static assert(isArray!(const bool[]));
|
||||||
@ -767,7 +767,7 @@ template isStaticArray(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isStaticArray!(bool[8]));
|
static assert(isStaticArray!(bool[8]));
|
||||||
static assert(isStaticArray!(const bool[8]));
|
static assert(isStaticArray!(const bool[8]));
|
||||||
@ -791,7 +791,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isDynamicArray(T) = isArray!T && !isStaticArray!T;
|
enum bool isDynamicArray(T) = isArray!T && !isStaticArray!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isDynamicArray!(bool[]));
|
static assert(isDynamicArray!(bool[]));
|
||||||
static assert(isDynamicArray!(const bool[]));
|
static assert(isDynamicArray!(const bool[]));
|
||||||
@ -825,7 +825,7 @@ template isAssociativeArray(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isAssociativeArray!(bool[string]));
|
static assert(isAssociativeArray!(bool[string]));
|
||||||
static assert(isAssociativeArray!(const bool[string]));
|
static assert(isAssociativeArray!(const bool[string]));
|
||||||
@ -855,7 +855,7 @@ enum bool isBuiltinType(T) = isBasicType!T
|
|||||||
|| isAssociativeArray!T;
|
|| isAssociativeArray!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isBuiltinType!int);
|
static assert(isBuiltinType!int);
|
||||||
static assert(isBuiltinType!(int[]));
|
static assert(isBuiltinType!(int[]));
|
||||||
@ -887,7 +887,7 @@ enum bool isAggregateType(T) = is(T == struct)
|
|||||||
|| is(T == union);
|
|| is(T == union);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S;
|
struct S;
|
||||||
class C;
|
class C;
|
||||||
@ -929,7 +929,7 @@ enum bool isNarrowString(T) = (is(T : const char[]) || is (T : const wchar[]))
|
|||||||
&& !isStaticArray!T;
|
&& !isStaticArray!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isNarrowString!(char[]));
|
static assert(isNarrowString!(char[]));
|
||||||
static assert(isNarrowString!(wchar[]));
|
static assert(isNarrowString!(wchar[]));
|
||||||
@ -978,7 +978,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isSomeString(T) = isNarrowString!T || isWideString!T;
|
enum bool isSomeString(T) = isNarrowString!T || isWideString!T;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isSomeString!(dchar[]));
|
static assert(isSomeString!(dchar[]));
|
||||||
static assert(isSomeString!(char[]));
|
static assert(isSomeString!(char[]));
|
||||||
@ -1036,7 +1036,7 @@ template mostNegative(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(mostNegative!char == char.min);
|
static assert(mostNegative!char == char.min);
|
||||||
static assert(mostNegative!wchar == wchar.min);
|
static assert(mostNegative!wchar == wchar.min);
|
||||||
@ -1085,7 +1085,7 @@ if (Args.length >= 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Largest!(int, short, uint) == int));
|
static assert(is(Largest!(int, short, uint) == int));
|
||||||
static assert(is(Largest!(short) == short));
|
static assert(is(Largest!(short) == short));
|
||||||
@ -1109,7 +1109,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isCopyable(T) = is(typeof({ T s1 = T.init; T s2 = s1; }));
|
enum bool isCopyable(T) = is(typeof({ T s1 = T.init; T s2 = s1; }));
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S1
|
struct S1
|
||||||
{
|
{
|
||||||
@ -1158,7 +1158,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isAbstractClass(T) = __traits(isAbstractClass, T);
|
enum bool isAbstractClass(T) = __traits(isAbstractClass, T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -1201,7 +1201,7 @@ private enum bool isType(T) = true;
|
|||||||
enum bool isTypeTuple(Args...) = allSatisfy!(isType, Args);
|
enum bool isTypeTuple(Args...) = allSatisfy!(isType, Args);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isTypeTuple!(int, uint, Object));
|
static assert(isTypeTuple!(int, uint, Object));
|
||||||
static assert(isTypeTuple!());
|
static assert(isTypeTuple!());
|
||||||
@ -1274,7 +1274,7 @@ template isExpressions(Args...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isExpressions!(5, 8, 2));
|
static assert(isExpressions!(5, 8, 2));
|
||||||
static assert(isExpressions!());
|
static assert(isExpressions!());
|
||||||
@ -1301,7 +1301,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isFinalClass(T) = __traits(isFinalClass, T);
|
enum bool isFinalClass(T) = __traits(isFinalClass, T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
final class A
|
final class A
|
||||||
{
|
{
|
||||||
@ -1328,7 +1328,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isAbstractFunction(alias F) = __traits(isAbstractFunction, F);
|
enum bool isAbstractFunction(alias F) = __traits(isAbstractFunction, F);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -1365,7 +1365,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isFinalFunction(alias F) = __traits(isFinalFunction, F);
|
enum bool isFinalFunction(alias F) = __traits(isFinalFunction, F);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -1413,7 +1413,7 @@ if (F.length == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isFunctionPointer!(void function()));
|
static assert(isFunctionPointer!(void function()));
|
||||||
static assert(!isFunctionPointer!(void delegate()));
|
static assert(!isFunctionPointer!(void delegate()));
|
||||||
@ -1470,7 +1470,7 @@ if (F.length == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isDelegate!(void delegate()));
|
static assert(isDelegate!(void delegate()));
|
||||||
static assert(!isDelegate!(void function()));
|
static assert(!isDelegate!(void function()));
|
||||||
@ -1531,7 +1531,7 @@ if (F.length == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(!isFunction!(void function()));
|
static assert(!isFunction!(void function()));
|
||||||
static assert(!isFunction!(() {}));
|
static assert(!isFunction!(() {}));
|
||||||
@ -1580,7 +1580,7 @@ if (F.length == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isSomeFunction!(void function()));
|
static assert(isSomeFunction!(void function()));
|
||||||
static assert(isSomeFunction!(() {}));
|
static assert(isSomeFunction!(() {}));
|
||||||
@ -1627,7 +1627,7 @@ if (F.length == 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S
|
struct S
|
||||||
{
|
{
|
||||||
@ -1652,7 +1652,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
static assert(!isCallable!I);
|
static assert(!isCallable!I);
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S
|
struct S
|
||||||
{
|
{
|
||||||
@ -1677,7 +1677,7 @@ private pure nothrow @safe @nogc unittest
|
|||||||
enum bool hasMember(T, string member) = __traits(hasMember, T, member);
|
enum bool hasMember(T, string member) = __traits(hasMember, T, member);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S
|
struct S
|
||||||
{
|
{
|
||||||
@ -1732,7 +1732,7 @@ template isMutable(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S
|
struct S
|
||||||
{
|
{
|
||||||
@ -1797,7 +1797,7 @@ pure nothrow @safe unittest
|
|||||||
enum bool isNestedFunction(alias F) = __traits(isNested, F);
|
enum bool isNestedFunction(alias F) = __traits(isNested, F);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
void func()
|
void func()
|
||||||
{
|
{
|
||||||
@ -1834,13 +1834,13 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(FunctionTypeOf!(void function()) == function));
|
static assert(is(FunctionTypeOf!(void function()) == function));
|
||||||
static assert(is(FunctionTypeOf!(() {}) == function));
|
static assert(is(FunctionTypeOf!(() {}) == function));
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(FunctionTypeOf!(void delegate()) == function));
|
static assert(is(FunctionTypeOf!(void delegate()) == function));
|
||||||
|
|
||||||
@ -1883,7 +1883,7 @@ private pure nothrow @safe @nogc unittest
|
|||||||
static assert(is(FunctionTypeOf!S == function));
|
static assert(is(FunctionTypeOf!S == function));
|
||||||
}
|
}
|
||||||
|
|
||||||
private pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S2
|
struct S2
|
||||||
{
|
{
|
||||||
@ -1917,7 +1917,7 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(ReturnType!(int delegate()) == int));
|
static assert(is(ReturnType!(int delegate()) == int));
|
||||||
static assert(is(ReturnType!(bool function()) == bool));
|
static assert(is(ReturnType!(bool function()) == bool));
|
||||||
@ -1934,7 +1934,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias TemplateOf(alias T : Base!Args, alias Base, Args...) = Base;
|
alias TemplateOf(alias T : Base!Args, alias Base, Args...) = Base;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S(T)
|
struct S(T)
|
||||||
{
|
{
|
||||||
@ -1990,7 +1990,7 @@ template isInstanceOf(alias T, alias I)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S(T)
|
struct S(T)
|
||||||
{
|
{
|
||||||
@ -2020,7 +2020,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
enum bool isImplicitlyConvertible(From, To) = is(From : To);
|
enum bool isImplicitlyConvertible(From, To) = is(From : To);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(isImplicitlyConvertible!(const(byte), byte));
|
static assert(isImplicitlyConvertible!(const(byte), byte));
|
||||||
static assert(isImplicitlyConvertible!(byte, char));
|
static assert(isImplicitlyConvertible!(byte, char));
|
||||||
@ -2056,7 +2056,7 @@ if (is(T == class) || (is(T == interface)))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
interface I1
|
interface I1
|
||||||
{
|
{
|
||||||
@ -2113,7 +2113,7 @@ if (is(T == class) || is(T == interface))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
interface I1
|
interface I1
|
||||||
{
|
{
|
||||||
@ -2163,7 +2163,7 @@ if (is(T == class))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
interface I1
|
interface I1
|
||||||
{
|
{
|
||||||
@ -2199,7 +2199,7 @@ if (is(T == class) || is(T == interface))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
interface I1
|
interface I1
|
||||||
{
|
{
|
||||||
@ -2249,7 +2249,7 @@ template isAssignable(Lhs, Rhs = Lhs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S1
|
struct S1
|
||||||
{
|
{
|
||||||
@ -2290,7 +2290,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias TemplateArgsOf(alias T : Base!Args, alias Base, Args...) = Args;
|
alias TemplateArgsOf(alias T : Base!Args, alias Base, Args...) = Args;
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
template T(A, B)
|
template T(A, B)
|
||||||
{
|
{
|
||||||
@ -2320,7 +2320,7 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
int func(Object, uint[]);
|
int func(Object, uint[]);
|
||||||
static assert(is(Parameters!func == AliasSeq!(Object, uint[])));
|
static assert(is(Parameters!func == AliasSeq!(Object, uint[])));
|
||||||
@ -2368,7 +2368,7 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
int func(ref Object stuff, uint[] = null, scope uint k = 1);
|
int func(ref Object stuff, uint[] = null, scope uint k = 1);
|
||||||
alias P = ParameterIdentifierTuple!func;
|
alias P = ParameterIdentifierTuple!func;
|
||||||
@ -2480,7 +2480,7 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
@property ref int func1() pure nothrow @safe @nogc shared scope;
|
@property ref int func1() pure nothrow @safe @nogc shared scope;
|
||||||
static assert((functionAttributes!func1 & FunctionAttribute.pure_)
|
static assert((functionAttributes!func1 & FunctionAttribute.pure_)
|
||||||
@ -2548,7 +2548,7 @@ if (isCallable!F)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
void func1(int k, uint b = 5, int[] = [1, 2]);
|
void func1(int k, uint b = 5, int[] = [1, 2]);
|
||||||
alias Defaults = ParameterDefaults!func1;
|
alias Defaults = ParameterDefaults!func1;
|
||||||
@ -2587,7 +2587,7 @@ template hasElaborateDestructor(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class C
|
class C
|
||||||
{
|
{
|
||||||
@ -2653,7 +2653,7 @@ template hasElaborateCopyConstructor(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(!hasElaborateCopyConstructor!int);
|
static assert(!hasElaborateCopyConstructor!int);
|
||||||
|
|
||||||
@ -2715,7 +2715,7 @@ template hasElaborateAssign(T)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(!hasElaborateAssign!int);
|
static assert(!hasElaborateAssign!int);
|
||||||
|
|
||||||
@ -2815,7 +2815,7 @@ if (is(T == class))
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class C1
|
class C1
|
||||||
{
|
{
|
||||||
@ -2858,7 +2858,7 @@ template ifTestable(T, alias pred = a => a)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(ifTestable!int);
|
static assert(ifTestable!int);
|
||||||
|
|
||||||
@ -2932,7 +2932,7 @@ template getUDAs(alias symbol, alias attr)
|
|||||||
alias getUDAs(alias symbol) = AliasSeq!(__traits(getAttributes, symbol));
|
alias getUDAs(alias symbol) = AliasSeq!(__traits(getAttributes, symbol));
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct Attr
|
struct Attr
|
||||||
{
|
{
|
||||||
@ -2987,7 +2987,7 @@ template hasUDA(alias symbol, alias attr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct Attr1
|
struct Attr1
|
||||||
{
|
{
|
||||||
@ -3017,7 +3017,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
*/
|
*/
|
||||||
template isInnerClass(T)
|
template isInnerClass(T)
|
||||||
{
|
{
|
||||||
static if (is(T == class) && is(Alias!(__traits(parent, T)) == class))
|
static if (is(T == class) && is(typeof(T.outer) == class))
|
||||||
{
|
{
|
||||||
enum bool isInnerClass = !canFind!("outer", __traits(allMembers, T));
|
enum bool isInnerClass = !canFind!("outer", __traits(allMembers, T));
|
||||||
}
|
}
|
||||||
@ -3028,7 +3028,7 @@ template isInnerClass(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
class A
|
class A
|
||||||
{
|
{
|
||||||
@ -3047,3 +3047,11 @@ pure nothrow @safe @nogc unittest
|
|||||||
static assert(isInnerClass!(O.I));
|
static assert(isInnerClass!(O.I));
|
||||||
static assert(!isInnerClass!(O.Fake));
|
static assert(!isInnerClass!(O.Fake));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@nogc nothrow pure @safe unittest
|
||||||
|
{
|
||||||
|
class RefCountedStore(T)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static assert(!isInnerClass!(RefCountedStore!int));
|
||||||
|
}
|
||||||
|
@ -60,7 +60,7 @@ template Unqual(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Unqual!bool == bool));
|
static assert(is(Unqual!bool == bool));
|
||||||
static assert(is(Unqual!(immutable bool) == bool));
|
static assert(is(Unqual!(immutable bool) == bool));
|
||||||
@ -95,7 +95,7 @@ template OriginalType(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
enum E1 : const(int)
|
enum E1 : const(int)
|
||||||
{
|
{
|
||||||
@ -166,7 +166,7 @@ template CopyConstness(From, To)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(CopyConstness!(int, char) == char));
|
static assert(is(CopyConstness!(int, char) == char));
|
||||||
static assert(is(CopyConstness!(const int, char) == const char));
|
static assert(is(CopyConstness!(const int, char) == const char));
|
||||||
@ -245,7 +245,7 @@ template CopyTypeQualifiers(From, To)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(CopyTypeQualifiers!(int, char) == char));
|
static assert(is(CopyTypeQualifiers!(int, char) == char));
|
||||||
static assert(is(CopyTypeQualifiers!(const int, char) == const char));
|
static assert(is(CopyTypeQualifiers!(const int, char) == const char));
|
||||||
@ -297,7 +297,7 @@ if (isIntegral!T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Unsigned!byte == ubyte));
|
static assert(is(Unsigned!byte == ubyte));
|
||||||
static assert(is(Unsigned!short == ushort));
|
static assert(is(Unsigned!short == ushort));
|
||||||
@ -350,7 +350,7 @@ if (isIntegral!T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Signed!ubyte == byte));
|
static assert(is(Signed!ubyte == byte));
|
||||||
static assert(is(Signed!ushort == short));
|
static assert(is(Signed!ushort == short));
|
||||||
@ -386,7 +386,7 @@ template PointerTarget(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(PointerTarget!(bool*) == bool));
|
static assert(is(PointerTarget!(bool*) == bool));
|
||||||
static assert(is(PointerTarget!(const bool*) == const bool));
|
static assert(is(PointerTarget!(const bool*) == const bool));
|
||||||
@ -413,7 +413,7 @@ template KeyType(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(KeyType!(int[string]) == string));
|
static assert(is(KeyType!(int[string]) == string));
|
||||||
static assert(!is(KeyType!(int[15])));
|
static assert(!is(KeyType!(int[15])));
|
||||||
@ -438,7 +438,7 @@ template ValueType(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(ValueType!(int[string]) == int));
|
static assert(is(ValueType!(int[string]) == int));
|
||||||
static assert(!is(ValueType!(int[15])));
|
static assert(!is(ValueType!(int[15])));
|
||||||
@ -460,7 +460,7 @@ if (isScalarType!T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(Promoted!bool == int));
|
static assert(is(Promoted!bool == int));
|
||||||
static assert(is(Promoted!byte == int));
|
static assert(is(Promoted!byte == int));
|
||||||
@ -486,7 +486,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias InoutOf(T) = inout(T);
|
alias InoutOf(T) = inout(T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(InoutOf!int == inout int));
|
static assert(is(InoutOf!int == inout int));
|
||||||
}
|
}
|
||||||
@ -502,7 +502,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias ConstOf(T) = const(T);
|
alias ConstOf(T) = const(T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(ConstOf!int == const int));
|
static assert(is(ConstOf!int == const int));
|
||||||
}
|
}
|
||||||
@ -518,7 +518,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias SharedOf(T) = shared(T);
|
alias SharedOf(T) = shared(T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(SharedOf!int == shared int));
|
static assert(is(SharedOf!int == shared int));
|
||||||
}
|
}
|
||||||
@ -534,7 +534,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias SharedInoutOf(T) = shared(inout T);
|
alias SharedInoutOf(T) = shared(inout T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(SharedInoutOf!int == shared inout int));
|
static assert(is(SharedInoutOf!int == shared inout int));
|
||||||
}
|
}
|
||||||
@ -550,7 +550,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias SharedConstOf(T) = shared(const T);
|
alias SharedConstOf(T) = shared(const T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(SharedConstOf!int == shared const int));
|
static assert(is(SharedConstOf!int == shared const int));
|
||||||
}
|
}
|
||||||
@ -566,7 +566,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias ImmutableOf(T) = immutable(T);
|
alias ImmutableOf(T) = immutable(T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(ImmutableOf!int == immutable int));
|
static assert(is(ImmutableOf!int == immutable int));
|
||||||
}
|
}
|
||||||
@ -582,7 +582,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias InoutConstOf(T) = inout(const T);
|
alias InoutConstOf(T) = inout(const T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(InoutConstOf!int == inout const int));
|
static assert(is(InoutConstOf!int == inout const int));
|
||||||
}
|
}
|
||||||
@ -598,7 +598,7 @@ pure nothrow @safe @nogc unittest
|
|||||||
alias SharedInoutConstOf(T) = shared(inout const T);
|
alias SharedInoutConstOf(T) = shared(inout const T);
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
static assert(is(SharedInoutConstOf!int == shared inout const int));
|
static assert(is(SharedInoutConstOf!int == shared inout const int));
|
||||||
}
|
}
|
||||||
@ -653,7 +653,7 @@ template QualifierOf(T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
alias MutableOf = QualifierOf!int;
|
alias MutableOf = QualifierOf!int;
|
||||||
static assert(is(MutableOf!uint == uint));
|
static assert(is(MutableOf!uint == uint));
|
||||||
@ -707,7 +707,7 @@ if (isExpressions!T || isTemplate!T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
pure nothrow @safe @nogc unittest
|
@nogc nothrow pure @safe unittest
|
||||||
{
|
{
|
||||||
struct S(T)
|
struct S(T)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user