--block Class C inherits A { d:Int; m7():C{ m1(d) }; m8():A{ m1(d) }; }; Class A{ a:Int; b:Bool; --checking the return type m1(a:Int):SELF_TYPE{ { self; } }; m2(a:Int):Bool{ { a<-1; true; } }; m4(a:Int):Object{ { while (4<2) loop a<-1 pool; while (a<=2) loop a<-1 pool ; while (not(true)) loop a<-1 pool; while (not(4<2)) loop a<-1 pool; } }; m5(f:Int):A{ --valid ret type C for A { new A; new C; } }; }; Class Main{ main():Int{ 1 }; };