Branch: Tag:

1999-08-09

1999-08-09 04:15:22 by Martin Stjernholm <mast@lysator.liu.se>

Black box modifier tests.

Rev: src/testsuite.in:1.186

1: - stest_true([["$Id: testsuite.in,v 1.185 1999/08/08 17:32:35 mast Exp $"]]) + stest_true([["$Id: testsuite.in,v 1.186 1999/08/09 04:15:22 mast Exp $"]])   cond([[all_constants()->_verify_internals]],   [[    test_do(_verify_internals())
3453:   }   ]])    + // - modifiers, compile time type checks +  + test_compile_any(class A {int v;} class B {inherit A; int v;}) + test_compile_error_low(class A {int v;} class B {inherit A; float v;}) + test_compile_error_low(class A {int v;} class B {inherit A; mixed v;}) + test_compile_error_low(class A {mixed v;} class B {inherit A; int v;}) + test_compile_error_low(class A {public int v;} class B {inherit A; float v;}) + test_compile_error_low(class A {public int v;} class B {inherit A; mixed v;}) + test_compile_error_low(class A {public mixed v;} class B {inherit A; int v;}) + test_compile_error_low(class A {static int v;} class B {inherit A; float v;}) + test_compile_error_low(class A {static int v;} class B {inherit A; mixed v;}) + test_compile_error_low(class A {static mixed v;} class B {inherit A; int v;}) + test_compile_any(class A {private int v;} class B {inherit A; float v;}) + test_compile_any(class A {private int v;} class B {inherit A; mixed v;}) + test_compile_any(class A {private mixed v;} class B {inherit A; int v;}) + test_compile_error_low(class A {final int v;} class B {inherit A; int v;}) + test_compile_error_low(class A {final int v;} class B {inherit A; final int v;}) + test_compile_error_low(class A {nomask int v;} class B {inherit A; int v;}) + test_compile_error_low(class A {nomask int v;} class B {inherit A; nomask int v;}) + test_compile_any(class A {local int v;} class B {inherit A; float v;}) + test_compile_any(class A {local int v;} class B {inherit A; mixed v;}) + test_compile_any(class A {local mixed v;} class B {inherit A; int v;}) + test_compile_any(class A {inline int v;} class B {inherit A; float v;}) + test_compile_any(class A {inline int v;} class B {inherit A; mixed v;}) + test_compile_any(class A {inline mixed v;} class B {inherit A; int v;}) +  + test_compile_any(class A {int f(){}} class B {inherit A; int f(){}}) + test_compile_any(class A {int f(){}} class B {inherit A; float f(){}}) + test_compile_any(class A {int f(){}} class B {inherit A; mixed f(){}}) + test_compile_any(class A {mixed f(){}} class B {inherit A; int f(){}}) + test_compile_any(class A {void f(){}} class B {inherit A; void f(int a){}}) + test_compile_any(class A {void f(int a){}} class B {inherit A; void f(float a){}}) + test_compile_any(class A {void f(int a){}} class B {inherit A; void f(mixed a){}}) + test_compile_any(class A {void f(mixed a){}} class B {inherit A; void f(int a){}}) + test_compile_error_low(class A {final int f(){}} class B {inherit A; int f(){}}) + test_compile_error_low(class A {final int f(){}} class B {inherit A; final int f(){}}) + test_compile_error_low(class A {nomask int f(){}} class B {inherit A; int f(){}}) + test_compile_error_low(class A {nomask int f(){}} class B {inherit A; nomask int f(){}}) +  + test_compile_error_low(class A {int v;} class B {inherit A; int v(){}}) + test_compile_error_low(class A {public int v;} class B {inherit A; int v(){}}) + test_compile_error_low(class A {static int v;} class B {inherit A; int v(){}}) + test_compile_any(class A {private int v;} class B {inherit A; int v(){}}) + test_compile_error_low(class A {final int v;} class B {inherit A; int v(){}}) + test_compile_error_low(class A {nomask int v;} class B {inherit A; int v(){}}) + test_compile_any(class A {local int v;} class B {inherit A; int v(){}}) + test_compile_any(class A {inline int v;} class B {inherit A; int v(){}}) +  + test_compile_error_low(class A {int f(){}} class B {inherit A; int f;}) + test_compile_error_low(class A {public int f(){}} class B {inherit A; int f;}) + test_compile_error_low(class A {static int f(){}} class B {inherit A; int f;}) + test_compile_any(class A {private int f(){}} class B {inherit A; int f;}) + test_compile_error_low(class A {final int f(){}} class B {inherit A; int f;}) + test_compile_error_low(class A {nomask int f(){}} class B {inherit A; int f;}) + test_compile_any(class A {local int f(){}} class B {inherit A; int f;}) + test_compile_any(class A {inline int f(){}} class B {inherit A; int f;}) +  + // - modifiers, compile time access properties +  + test_compile_error_low(class A {} class B {inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {public int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {static int v;} class B {inherit A; void g(){v;}}) + test_compile_error_low(class A {private int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {final int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {nomask int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {local int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {inline int v;} class B {inherit A; void g(){v;}}) + test_compile_any(class A {int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {public int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {static int f(){}} class B {inherit A; void g(){f();}}) + test_compile_error_low(class A {private int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {final int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {nomask int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {local int f(){}} class B {inherit A; void g(){f();}}) + test_compile_any(class A {inline int f(){}} class B {inherit A; void g(){f();}}) +  + test_compile_any(class A {int v;} class B {public inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {static inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {private inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {final inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {nomask inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {local inherit A; void g(){v;}}) + test_compile_any(class A {int v;} class B {inline inherit A; void g(){v;}}) + test_compile_any(class A {int f(){}} class B {public inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {static inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {private inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {final inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {nomask inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {local inherit A; void g(){f();}}) + test_compile_any(class A {int f(){}} class B {inline inherit A; void g(){f();}}) +  + test_compile_error_low(class A {} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {public int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {static int v;} class B {inherit A; void g(){A::v;}}) + test_compile_error_low(class A {private int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {final int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {nomask int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {local int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {inline int v;} class B {inherit A; void g(){A::v;}}) + test_compile_any(class A {int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {public int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {static int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_error_low(class A {private int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {final int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {nomask int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {local int f(){}} class B {inherit A; void g(){A::f();}}) + test_compile_any(class A {inline int f(){}} class B {inherit A; void g(){A::f();}}) +  + test_compile_any(class A {int v;} class B {public inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {static inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {private inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {final inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {nomask inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {local inherit A; void g(){A::v;}}) + test_compile_any(class A {int v;} class B {inline inherit A; void g(){A::v;}}) + test_compile_any(class A {int f(){}} class B {public inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {static inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {private inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {final inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {nomask inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {local inherit A; void g(){A::f();}}) + test_compile_any(class A {int f(){}} class B {inline inherit A; void g(){A::f();}}) +  + test_compile_error_low(class A {} class B {inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {public inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {static inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_error_low(class A {int v;} class B {private inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {final inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {nomask inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {local inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int v;} class B {inline inherit A;} class C {inherit B; void g(){B::v;}}) + test_compile_any(class A {int f(){}} class B {inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {public inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {static inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_error_low(class A {int f(){}} class B {private inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {final inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {nomask inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {local inherit A;} class C {inherit B; void g(){B::f();}}) + test_compile_any(class A {int f(){}} class B {inline inherit A;} class C {inherit B; void g(){B::f();}}) +  + // - modifiers, run time access properties +  + test_eval_error(class {}()->f()) + test_do(class {int f(){}}()->f()) + test_do(class {public int f(){}}()->f()) + test_eval_error(class {static int f(){}}()->f()) + test_eval_error(class {private int f(){}}()->f()) + test_do(class {final int f(){}}()->f()) + test_do(class {nomask int f(){}}()->f()) + test_do(class {local int f(){}}()->f()) + test_do(class {inline int f(){}}()->f()) + test_do(class {class A {}}()->A()) + test_do(class {public class A {}}()->A()) + test_eval_error(class {static class A {}}()->A()) + test_eval_error(class {private class A {}}()->A()) + test_do(class {final class A {}}()->A()) + test_do(class {nomask class A {}}()->A()) + test_do(class {local class A {}}()->A()) + test_do(class {inline class A {}}()->A()) +  + test_equal(indices(class {}()), ({})) + test_equal(indices(class {int v;}()), ({"v"})) + test_equal(indices(class {public int v;}()), ({"v"})) + test_equal(indices(class {static int v;}()), ({})) + test_equal(indices(class {private int v;}()), ({})) + test_equal(indices(class {final int v;}()), ({"v"})) + test_equal(indices(class {nomask int v;}()), ({"v"})) + test_equal(indices(class {local int v;}()), ({"v"})) + test_equal(indices(class {inline int v;}()), ({"v"})) + test_equal(indices(class {int f(){}}()), ({"f"})) + test_equal(indices(class {public int f(){}}()), ({"f"})) + test_equal(indices(class {static int f(){}}()), ({})) + test_equal(indices(class {private int f(){}}()), ({})) + test_equal(indices(class {final int f(){}}()), ({"f"})) + test_equal(indices(class {nomask int f(){}}()), ({"f"})) + test_equal(indices(class {local int f(){}}()), ({"f"})) + test_equal(indices(class {inline int f(){}}()), ({"f"})) +  + test_equal(indices(class {class A {} class B {inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {public int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {static int v;} class B {inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {private int v;} class B {inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {final int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {nomask int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {local int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {inline int v;} class B {inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int f(){}} class B {inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {public int f(){}} class B {inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {static int f(){}} class B {inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {private int f(){}} class B {inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {final int f(){}} class B {inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {nomask int f(){}} class B {inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {local int f(){}} class B {inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {inline int f(){}} class B {inherit A;}}()->B()), ({"f"})) +  + test_equal(indices(class {class A {int v;} class B {public inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {static inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {int v;} class B {private inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {int v;} class B {final inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {nomask inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {local inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {inline inherit A;}}()->B()), ({"v"})) + test_equal(indices(class {class A {int f(){}} class B {public inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {static inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {int f(){}} class B {private inherit A;}}()->B()), ({})) + test_equal(indices(class {class A {int f(){}} class B {final inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {nomask inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {local inherit A;}}()->B()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {inline inherit A;}}()->B()), ({"f"})) +  + test_equal(indices(class {class A {} class B {inherit A;} class C {inherit B;}}()->C()), ({})) + test_equal(indices(class {class A {int v;} class B {inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {public inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {static inherit A;} class C {inherit B;}}()->C()), ({})) + test_equal(indices(class {class A {int v;} class B {private inherit A;} class C {inherit B;}}()->C()), ({})) + test_equal(indices(class {class A {int v;} class B {final inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {nomask inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {local inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int v;} class B {inline inherit A;} class C {inherit B;}}()->C()), ({"v"})) + test_equal(indices(class {class A {int f(){}} class B {inherit A;} class C {inherit B;}}()->C()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {public inherit A;} class C {inherit B;}}()->C()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {static inherit A;} class C {inherit B;}}()->C()), ({})) + test_equal(indices(class {class A {int f(){}} class B {private inherit A;} class C {inherit B;}}()->C()), ({})) + test_equal(indices(class {class A {int f(){}} class B {final inherit A;} class C {inherit B;}}()->C()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {nomask inherit A;} class C {inherit B;}}()->C()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {local inherit A;} class C {inherit B;}}()->C()), ({"f"})) + test_equal(indices(class {class A {int f(){}} class B {inline inherit A;} class C {inherit B;}}()->C()), ({"f"})) +  + // - modifiers, binding and redefinition properties with compile time access +  + test_any(class A {int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {public int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {static int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {private int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_compile_error_low(class A {final int v=1;}; class B {inherit A; int v=2;};) + test_compile_error_low(class A {nomask int v=1;}; class B {inherit A; int v=2;};) + test_any(class A {local int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {inline int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {public int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {static int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {private int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_compile_error_low(class A {final int f(){return 1;}}; class B {inherit A; int f(){return 2;}};) + test_compile_error_low(class A {nomask int f(){return 1;}}; class B {inherit A; int f(){return 2;}};) + test_any(class A {local int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {inline int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) +  + test_any(class A {int v=1;}; class B {public inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {static inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {private inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_compile_error_low(class A {int v=1;}; class B {final inherit A; int v=2;};) + test_compile_error_low(class A {int v=1;}; class B {nomask inherit A; int v=2;};) + test_any(class A {int v=1;}; class B {local inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inline inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {public inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {static inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {private inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_compile_error_low(class A {int f(){return 1;}}; class B {final inherit A; int f(){return 2;}};) + test_compile_error_low(class A {int f(){return 1;}}; class B {nomask inherit A; int f(){return 2;}};) + test_any(class A {int f(){return 1;}}; class B {local inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inline inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) +  + test_any(class A {int v=1;}; class B {inherit A; int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; public int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; static int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; private int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; final int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; nomask int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; local int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int v=1;}; class B {inherit A; inline int v=2; int t(){return v;}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; public int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; static int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; private int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; final int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; nomask int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; local int f(){return 2;} int t(){return f();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; inline int f(){return 2;} int t(){return f();}}; return B()->t(), 2) +  + test_any(class A {int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 2) + test_any(class A {public int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 2) + test_any(class A {static int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 2) + test_any(class A {private int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 1) + test_any(class A {local int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 1) + test_any(class A {inline int v=1; int t(){return v;}}; class B {inherit A; int v=2;}; return B()->t(), 1) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 2) + test_any(class A {public int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 2) + test_any(class A {static int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 2) + test_any(class A {private int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 1) + test_any(class A {local int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 1) + test_any(class A {inline int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;}}; return B()->t(), 1) +  + test_any(class A {int v=1; int t(){return v;}}; class B {inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int v=1; int t(){return v;}}; class B {public inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int v=1; int t(){return v;}}; class B {static inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int v=1; int t(){return v;}}; class B {private inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int v=1; int t(){return v;}}; class B {local inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 1) + test_any(class A {int v=1; int t(){return v;}}; class B {inline inherit A; int v=2; int t(){return A::t();}}; return B()->t(), 1) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {public inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {static inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {private inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 2) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {local inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 1) + test_any(class A {int f(){return 1;} int t(){return f();}}; class B {inline inherit A; int f(){return 2;} int t(){return A::t();}}; return B()->t(), 1) +  + // - modifiers, binding and redefinition properties with run time access +  + test_any(class A {int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {public int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {static int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {private int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {local int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {inline int v=1;}; class B {inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {public int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {static int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {private int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {local int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {inline int f(){return 1;}}; class B {inherit A; int f(){return 2;}}; return B()->f(), 2) +  + test_any(class A {int v=1;}; class B {public inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {static inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {private inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {local inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {inline inherit A; int v=2;}; return B()->v, 2) + test_any(class A {int f(){return 1;}}; class B {public inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {static inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {private inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {local inherit A; int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {inline inherit A; int f(){return 2;}}; return B()->f(), 2) +  + test_any(class A {int v=1;}; class B {inherit A; public int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {inherit A; static int v=2;}; return B()->v, 0) + test_any(class A {int v=1;}; class B {inherit A; private int v=2;}; return B()->v, 0) + test_any(class A {int v=1;}; class B {inherit A; final int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {inherit A; nomask int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {inherit A; local int v=2;}; return B()->v, 2) + test_any(class A {int v=1;}; class B {inherit A; inline int v=2;}; return B()->v, 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; public int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; static int f(){return 2;}}; return B()->f, 0) + test_any(class A {int f(){return 1;}}; class B {inherit A; private int f(){return 2;}}; return B()->f, 0) + test_any(class A {int f(){return 1;}}; class B {inherit A; final int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; nomask int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; local int f(){return 2;}}; return B()->f(), 2) + test_any(class A {int f(){return 1;}}; class B {inherit A; inline int f(){return 2;}}; return B()->f(), 2) +  + // - modifiers, misc tricky situations +  + test_any([[ +  class A {int v=0; int a(){return v;}}; +  class B {inherit A; local int v=1; int b(){return v;}}; +  return B()->a(); + ]], 1) + test_any([[ +  class A {int v=0; int a(){return v;}}; +  class B {inherit A; local int v=1; int b(){return v;}}; +  return B()->b(); + ]], 1) + test_any([[ +  class A {int v=0; int a(){return v;}}; +  class B {inherit A; local int v; int b(){return v;}}; +  class C {inherit B; int v=2; int c(){return v;}} +  return C()->a(); + ]], 2) + test_any([[ +  class A {int v=0; int a(){return v;}}; +  class B {inherit A; local int v; int b(){return v;}}; +  class C {inherit B; int v=2; int c(){return v;}} +  return C()->b(); + ]], 0) + test_any([[ +  class A {int v=0; int a(){return v;}}; +  class B {inherit A; local int v=1; int b(){return v;}}; +  class C {inherit B; int v; int c(){return v;}} +  return C()->c(); + ]], 1)