# HG changeset patch # User thomask # Date 1098526186 0 # Node ID 33346dff26400125ada81f87320a02add03fd95f # Parent e632533062c6d8a6e1ffeee611e41955105052ac extended invariant tests diff -r e632533062c6 -r 33346dff2640 nocompile/invariant_16.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_16.d Sat Oct 23 10:09:46 2004 +0000 @@ -0,0 +1,24 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_16; + +interface MyInterface{ + private int check(); + invariant{ + assert(check()!=4); + } +} +class MyClass : MyInterface { + void test(){ + } + + private int check(){ + return 4; + } +} + +int main(){ + Myclass c = new MyClass(); + c.test(); + return 0; +} diff -r e632533062c6 -r 33346dff2640 nocompile/invariant_17.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_17.d Sat Oct 23 10:09:46 2004 +0000 @@ -0,0 +1,21 @@ +// invariant may not call non-static public class member functions (stack overflow) + +module dstress.nocompile.invariant_17; + +class MyClass{ + this(){ + } + + int test(){ + return 0; + } + + invariant{ + assert(test()!=0); + } +} + +int main(){ + MyClass c = new MyClass(); + return 0; +} diff -r e632533062c6 -r 33346dff2640 run/invariant_18.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_18.d Sat Oct 23 10:09:46 2004 +0000 @@ -0,0 +1,16 @@ +module dstress.run.invariant_18; + +class MyClass{ + invariant{ + assert(0); + } +} + +int main(){ + try{ + MyClass c = new MyClass(); + }catch{ + return 0; + } + assert(0); +}