fix Issue 11853 - Tuples fail "isAssignable"

This commit is contained in:
monarchdodra 2013-12-31 17:17:32 +01:00
parent cb7cd89e06
commit 5d583483e3

View file

@ -1997,7 +1997,7 @@ See_Also:
void swap(T)(ref T lhs, ref T rhs) @trusted pure nothrow void swap(T)(ref T lhs, ref T rhs) @trusted pure nothrow
if (allMutableFields!T && !is(typeof(T.init.proxySwap(T.init)))) if (allMutableFields!T && !is(typeof(T.init.proxySwap(T.init))))
{ {
static if (!isAssignable!T || hasElaborateAssign!T) static if (hasElaborateAssign!T || !isAssignable!T)
{ {
import std.exception : pointsTo; import std.exception : pointsTo;
@ -2168,6 +2168,13 @@ unittest
static assert(!__traits(compiles, swap(s, s))); static assert(!__traits(compiles, swap(s, s)));
} }
unittest
{
//11853
alias T = Tuple!(int, double);
static assert(isAssignable!T);
}
void swapFront(R1, R2)(R1 r1, R2 r2) void swapFront(R1, R2)(R1 r1, R2 r2)
if (isInputRange!R1 && isInputRange!R2) if (isInputRange!R1 && isInputRange!R2)
{ {