/trunk/Examples/test-suite/d/director_protected_runme.1.d
D | 50 lines | 40 code | 10 blank | 0 comment | 10 complexity | 4ac1d231d46e3600838dedc987778e00 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- module director_protected_runme;
- import director_protected.Foo;
- import director_protected.Bar;
- void main() {
- Bar b = new Bar();
- Foo f = b.create();
- auto fb = new FooBar();
- auto fb2 = new FooBar2();
- char[] s;
- s = fb.used();
- if ( s != ("Foo::pang();Bar::pong();Foo::pong();FooBar::ping();"))
- throw new Exception("bad FooBar::used" ~ " - " ~ s);
- s = fb2.used();
- if ( s != ("FooBar2::pang();Bar::pong();Foo::pong();FooBar2::ping();"))
- throw new Exception("bad FooBar2::used");
- s = b.pong();
- if ( s != ("Bar::pong();Foo::pong();Bar::ping();"))
- throw new Exception("bad Bar::pong");
- s = f.pong();
- if ( s != ("Bar::pong();Foo::pong();Bar::ping();"))
- throw new Exception("bad Foo::pong");
- s = fb.pong();
- if ( s != ("Bar::pong();Foo::pong();FooBar::ping();"))
- throw new Exception("bad FooBar::pong");
- }
- class FooBar : Bar {
- protected:
- override char[] ping() {
- return "FooBar::ping();";
- }
- }
- class FooBar2 : Bar{
- protected:
- override char[] ping() {
- return "FooBar2::ping();";
- }
- override char[] pang() {
- return "FooBar2::pang();";
- }
- }