47 lines
505 B
Plaintext
47 lines
505 B
Plaintext
class A
|
|
{
|
|
uint some;
|
|
}
|
|
|
|
fn doSome(A a) A
|
|
{
|
|
// NOTE: section below won't change `a.some` value
|
|
|
|
if (a.some < 1)
|
|
{
|
|
a.some = 1;
|
|
return a;
|
|
}
|
|
|
|
return a;
|
|
}
|
|
|
|
fn doSomeNew() A
|
|
{
|
|
if (1 == 1)
|
|
{
|
|
return new A;
|
|
}
|
|
}
|
|
|
|
A a = new A;
|
|
a.some = 0;
|
|
if (a.some != 0)
|
|
{
|
|
printline("Test failed (first a.some != 0)");
|
|
exit(1);
|
|
}
|
|
else printline(a);
|
|
|
|
a = doSome(a);
|
|
if (a.some != 1)
|
|
{
|
|
printline("Test failed (2nd a.some != 1)");
|
|
exit(1);
|
|
}
|
|
else printline(a);
|
|
|
|
A b = doSomeNew();
|
|
printline(b);
|
|
|