blob: 6e1d0ded90984e839fa9f85d361c192457b2bc47 [file] [log] [blame]
director_nested
A=@() subclass(FooBar_int(),
'do_step',@(self) "A::do_step;",
'get_value',@(self) "A::get_value");
a = A();
if (!strcmp(a.step(),"Bar::step;Foo::advance;Bar::do_advance;A::do_step;"))
error("Bad A virtual resolution")
endif
B=@() subclass(FooBar_int(),
'do_advance',@(self) strcat("B::do_advance;",self.do_step()),
'do_step',@(self) "B::do_step;",
'get_value',@(self) 1);
b = B();
if (!strcmp(b.step(),"Bar::step;Foo::advance;B::do_advance;B::do_step;"))
error("Bad B virtual resolution")
endif
C=@() subclass(FooBar_int(),
'do_advance',@(self) strcat("C::do_advance;",self.FooBar_int.do_advance()),
'do_step',@(self) "C::do_step;",
'get_value',@(self) 2,
'get_name',@(self) strcat(self.FooBar_int.get_name()," hello"));
cc = C();
c = FooBar_int_get_self(cc);
c.advance();
if (!strcmp(c.get_name(),"FooBar::get_name hello"))
error
endif
if (!strcmp(c.name(),"FooBar::get_name hello"))
error
endif