/* Test multiple inheritance and assertions */
class Aclass {
public const name = "Aclass";
public var a = 1;
public proc Describe() { say( "a = ", a, "\n" ); }
}
class Bclass {
public const name = "Bclass";
public var b = 2;
public proc Describe() { say( "b = ", b, "\n" ); }
}
class ABclass(Aclass,Bclass)
{
public const name = "ABclass";
}
ABclass ab {}
proc main()
{
"ab.a = ", ab.a, "\n";
"ab.b = ", ab.b, "\n";
ab.Describe(); // Later classes in mult. inher. override earlier ones
"Aclass = ", Aclass.name, "\n";
"Bclass = ", Bclass.name, "\n";
"ABclass = ", ABclass.name, "\n";
"ABclass.parent = ", ABclass.parent.name, "\n";
// Neither of these assertions should fire
assert ab ?= Aclass;
assert ab ?= ABclass;
}