1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
// RUN: %ldc -run %s
void checkInt(int a, int b, int c)
{
assert(a == 1);
assert(b == 2);
assert(c == 3);
}
int incrementBy2AndReturn2(ref int a)
{
a += 2;
return 2;
}
// ---
struct BigStruct
{
long[33] blub;
int v;
this(int v) { this.v = v; }
}
void checkBigStruct(BigStruct a, BigStruct b, BigStruct c)
{
assert(a.v == 1);
assert(b.v == 2);
assert(c.v == 3);
}
BigStruct incrementBy2AndReturn2(ref BigStruct a)
{
a.v += 2;
return BigStruct(2);
}
// ---
void main()
{
int a = 1;
checkInt(a, incrementBy2AndReturn2(a), a);
auto s = BigStruct(1);
checkBigStruct(s, incrementBy2AndReturn2(s), s);
}
|