Skip to content

Commit

Permalink
std.traits: Adapt unittest to pass with -preview=in
Browse files Browse the repository at this point in the history
  • Loading branch information
Geod24 committed Aug 28, 2020
1 parent 8ff1161 commit 3a409ca
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions std/traits.d
Original file line number Diff line number Diff line change
Expand Up @@ -5219,11 +5219,26 @@ private enum isLvalueAssignable(Lhs, Rhs = Lhs) = __traits(compiles, { lvalueOf!
static assert( isAssignable!(S4, immutable int));

struct S5 { @disable this(); @disable this(this); }
struct S6 { void opAssign(in ref S5); }
static assert(!isAssignable!(S6, S5));
static assert(!isRvalueAssignable!(S6, S5));
static assert( isLvalueAssignable!(S6, S5));
static assert( isLvalueAssignable!(S6, immutable S5));

// `-preview=in` is enabled
static if (!is(typeof((in ref int) => int.init)))
{
struct S6 { void opAssign(in S5); }

static assert(isRvalueAssignable!(S6, S5));
static assert(isLvalueAssignable!(S6, S5));
static assert(isAssignable!(S6, S5));
static assert(isAssignable!(S6, immutable S5));
}
else
{
mixin(q{ struct S6 { void opAssign(in ref S5); } });

static assert(!isRvalueAssignable!(S6, S5));
static assert( isLvalueAssignable!(S6, S5));
static assert(!isAssignable!(S6, S5));
static assert( isLvalueAssignable!(S6, immutable S5));
}
}


Expand Down

0 comments on commit 3a409ca

Please sign in to comment.