Separate non-documentation tests from the code
This commit is contained in:
@ -1129,30 +1129,6 @@ if (__traits(isTemplate, cmp))
|
||||
static assert(!isSorted!(cmp, long, byte, ubyte, short, uint));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
enum cmp(int x, int y) = x - y;
|
||||
static assert(isSorted!(cmp));
|
||||
static assert(isSorted!(cmp, 1));
|
||||
static assert(isSorted!(cmp, 1, 2, 2));
|
||||
static assert(isSorted!(cmp, 1, 2, 2, 4));
|
||||
static assert(isSorted!(cmp, 1, 2, 2, 4, 8));
|
||||
static assert(!isSorted!(cmp, 32, 2, 2, 4, 8));
|
||||
static assert(isSorted!(cmp, 32, 32));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
enum cmp(int x, int y) = x < y;
|
||||
static assert(isSorted!(cmp));
|
||||
static assert(isSorted!(cmp, 1));
|
||||
static assert(isSorted!(cmp, 1, 2, 2));
|
||||
static assert(isSorted!(cmp, 1, 2, 2, 4));
|
||||
static assert(isSorted!(cmp, 1, 2, 2, 4, 8));
|
||||
static assert(!isSorted!(cmp, 32, 2, 2, 4, 8));
|
||||
static assert(isSorted!(cmp, 32, 32));
|
||||
}
|
||||
|
||||
/**
|
||||
* Params:
|
||||
* T = A template.
|
||||
|
@ -549,19 +549,6 @@ template isPointer(T)
|
||||
static assert(!isPointer!bool);
|
||||
}
|
||||
|
||||
// typeof(null) is not a pointer.
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static assert(!isPointer!(typeof(null)));
|
||||
static assert(!isPointer!(const shared typeof(null)));
|
||||
|
||||
enum typeOfNull : typeof(null)
|
||||
{
|
||||
null_ = null,
|
||||
}
|
||||
static assert(!isPointer!typeOfNull);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether $(D_PARAM T) is an array type (dynamic or static, but
|
||||
* not an associative one).
|
||||
@ -1478,20 +1465,6 @@ if (F.length == 1)
|
||||
static assert(!isCallable!I);
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static struct S
|
||||
{
|
||||
@property int opCall()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
S s;
|
||||
static assert(isCallable!S);
|
||||
static assert(isCallable!s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether $(D_PARAM T) defines a symbol $(D_PARAM member).
|
||||
*
|
||||
@ -1676,63 +1649,6 @@ if (isCallable!F)
|
||||
static assert(is(FunctionTypeOf!(() {}) == function));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static assert(is(FunctionTypeOf!(void delegate()) == function));
|
||||
|
||||
static void staticFunc()
|
||||
{
|
||||
}
|
||||
auto functionPointer = &staticFunc;
|
||||
static assert(is(FunctionTypeOf!staticFunc == function));
|
||||
static assert(is(FunctionTypeOf!functionPointer == function));
|
||||
|
||||
void func()
|
||||
{
|
||||
}
|
||||
auto dg = &func;
|
||||
static assert(is(FunctionTypeOf!func == function));
|
||||
static assert(is(FunctionTypeOf!dg == function));
|
||||
|
||||
interface I
|
||||
{
|
||||
@property int prop();
|
||||
}
|
||||
static assert(is(FunctionTypeOf!(I.prop) == function));
|
||||
|
||||
static struct S
|
||||
{
|
||||
void opCall()
|
||||
{
|
||||
}
|
||||
}
|
||||
class C
|
||||
{
|
||||
static void opCall()
|
||||
{
|
||||
}
|
||||
}
|
||||
S s;
|
||||
|
||||
static assert(is(FunctionTypeOf!s == function));
|
||||
static assert(is(FunctionTypeOf!C == function));
|
||||
static assert(is(FunctionTypeOf!S == function));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static struct S2
|
||||
{
|
||||
@property int opCall()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
S2 s2;
|
||||
static assert(is(FunctionTypeOf!S2 == function));
|
||||
static assert(is(FunctionTypeOf!s2 == function));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the return type of the callable $(D_PARAM F).
|
||||
*
|
||||
@ -2552,44 +2468,6 @@ template hasElaborateAssign(T)
|
||||
}
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static assert(!hasElaborateAssign!int);
|
||||
|
||||
static struct S1
|
||||
{
|
||||
void opAssign(S1)
|
||||
{
|
||||
}
|
||||
}
|
||||
static struct S2
|
||||
{
|
||||
void opAssign(int)
|
||||
{
|
||||
}
|
||||
}
|
||||
static struct S3
|
||||
{
|
||||
S1 s;
|
||||
alias s this;
|
||||
}
|
||||
static assert(hasElaborateAssign!S1);
|
||||
static assert(!hasElaborateAssign!(const S1));
|
||||
static assert(hasElaborateAssign!(S1[1]));
|
||||
static assert(!hasElaborateAssign!(S1[0]));
|
||||
static assert(!hasElaborateAssign!S2);
|
||||
static assert(hasElaborateAssign!S3);
|
||||
|
||||
static struct S4
|
||||
{
|
||||
void opAssign(S4)
|
||||
{
|
||||
}
|
||||
@disable this(this);
|
||||
}
|
||||
static assert(hasElaborateAssign!S4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all members of $(D_KEYWORD enum) $(D_PARAM T).
|
||||
*
|
||||
@ -2642,16 +2520,6 @@ if (is(T == enum))
|
||||
static assert([EnumMembers!E] == [E.one, E.two, E.three]);
|
||||
}
|
||||
|
||||
// Produces a tuple for an enum with only one member
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
enum E : int
|
||||
{
|
||||
one = 0,
|
||||
}
|
||||
static assert(EnumMembers!E == AliasSeq!0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Different than $(D_INLINECODE T.alignof), which is the same for all class
|
||||
* types, $(D_PSYMBOL classInstanceOf) determines the alignment of the class
|
||||
@ -2996,14 +2864,6 @@ template isInnerClass(T)
|
||||
static assert(!isInnerClass!(O.Fake));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
class RefCountedStore(T)
|
||||
{
|
||||
}
|
||||
static assert(!isInnerClass!(RefCountedStore!int));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the types of all members of $(D_PARAM T).
|
||||
*
|
||||
@ -3131,28 +2991,3 @@ enum bool isOrderingComparable(T) = ifTestable!(T, a => a > a);
|
||||
{
|
||||
static assert(isOrderingComparable!int);
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static struct DisabledOpEquals
|
||||
{
|
||||
@disable bool opEquals(typeof(this)) @nogc nothrow pure @safe;
|
||||
|
||||
int opCmp(typeof(this)) @nogc nothrow pure @safe
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static assert(!isEqualityComparable!DisabledOpEquals);
|
||||
static assert(isOrderingComparable!DisabledOpEquals);
|
||||
|
||||
static struct OpEquals
|
||||
{
|
||||
bool opEquals(typeof(this)) @nogc nothrow pure @safe
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
static assert(isEqualityComparable!OpEquals);
|
||||
static assert(!isOrderingComparable!OpEquals);
|
||||
}
|
||||
|
@ -855,53 +855,6 @@ if (allSatisfy!(isType, Args))
|
||||
static assert(is(CommonType!(const A, Object) == const Object));
|
||||
}
|
||||
|
||||
@nogc nothrow pure @safe unittest
|
||||
{
|
||||
static assert(is(CommonType!(void*, int*) == void*));
|
||||
static assert(is(CommonType!(void*, const(int)*) == const(void)*));
|
||||
static assert(is(CommonType!(void*, const(void)*) == const(void)*));
|
||||
static assert(is(CommonType!(int*, void*) == void*));
|
||||
static assert(is(CommonType!(const(int)*, void*) == const(void)*));
|
||||
static assert(is(CommonType!(const(void)*, void*) == const(void)*));
|
||||
|
||||
static assert(is(CommonType!() == void));
|
||||
static assert(is(CommonType!(int*, const(int)*) == const(int)*));
|
||||
static assert(is(CommonType!(int**, const(int)**) == const(int*)*));
|
||||
|
||||
static assert(is(CommonType!(float, double) == double));
|
||||
static assert(is(CommonType!(float, int) == void));
|
||||
|
||||
static assert(is(CommonType!(bool, const bool) == bool));
|
||||
static assert(is(CommonType!(int, bool) == void));
|
||||
static assert(is(CommonType!(int, void) == void));
|
||||
static assert(is(CommonType!(Object, void*) == void));
|
||||
|
||||
class A
|
||||
{
|
||||
}
|
||||
static assert(is(CommonType!(A, Object) == Object));
|
||||
static assert(is(CommonType!(const(A)*, Object*) == const(Object)*));
|
||||
static assert(is(CommonType!(A, typeof(null)) == A));
|
||||
|
||||
class B : A
|
||||
{
|
||||
}
|
||||
class C : A
|
||||
{
|
||||
}
|
||||
static assert(is(CommonType!(B, C) == A));
|
||||
|
||||
static struct S
|
||||
{
|
||||
int opCast(T : int)()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
static assert(is(CommonType!(S, int) == void));
|
||||
static assert(is(CommonType!(const S, S) == const S));
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the type with the smallest size in the $(D_PARAM Args) list. If
|
||||
* several types have the same type, the leftmost is returned.
|
||||
|
Reference in New Issue
Block a user