diff options
Diffstat (limited to 'Examples/test-suite/d/operator_overload_runme.1.d')
-rw-r--r-- | Examples/test-suite/d/operator_overload_runme.1.d | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/Examples/test-suite/d/operator_overload_runme.1.d b/Examples/test-suite/d/operator_overload_runme.1.d deleted file mode 100644 index 18a24b91f..000000000 --- a/Examples/test-suite/d/operator_overload_runme.1.d +++ /dev/null @@ -1,89 +0,0 @@ -module operator_overload_runme; - -import operator_overload.Op; - -void main() { - // Invoke the C++ sanity check first. - Op.sanity_check(); - - auto a = new Op(); - auto b = new Op(5); - auto c = b; - auto d = new Op(2); - auto dd = d; - - // test equality - assert(a != b); - assert(b == c); - assert(a != d); - assert(d == dd); - - // test < - assert(a < b); - assert(a <= b); - assert(b <= c); - assert(b >= c); - assert(b > d); - assert(b >= d); - - // test += - auto e = new Op(3); - e += d; - assert(e == b); - e -= c; - assert(e == a); - e = new Op(1); - e *= b; - assert(e == c); - e /= d; - assert(e == d); - e %= c; - assert(e == d); - - // test + - auto f = new Op(1); - auto g = new Op(1); - assert(f + g == new Op(2)); - assert(f - g == new Op(0)); - assert(f * g == new Op(1)); - assert(f / g == new Op(1)); - assert(f % g == new Op(0)); - - // test unary operators - assert(-a == a); - assert(-b == new Op(-5)); - // The unary ! operator is not overloadable in D1. - - // test [] - auto h = new Op(3); - assert(h[0]==3); - assert(h[1]==0); - // Generation of opIndexAssign is not supported yet. - - // test () - auto i = new Op(3); - assert(i()==3); - assert(i(1)==4); - assert(i(1,2)==6); - - // test ++ and -- - auto j = new Op(100); - int original = j.i; - { - Op newOp = j++; - int newInt = original++; - assert(j.i == original); - assert(newOp.i == newInt); - } - { - Op newOp = j--; - int newInt = original--; - assert(j.i == original); - assert(newOp.i == newInt); - } - // Prefix increment/decrement operators are lowered to (foo +=/-= 1) in D1, - // but the test case does not define an integer overload for operator += - // respectively -=. - - // Implicit casting is not overloadable in D1. -}
\ No newline at end of file |