MODULE TChain; (* Chained post-call method call on a class result (`Mk(7).Get()`) and a field of a class result (`Mk(8).x`). Exit 42. *) VAR ExitCode, got : INTEGER; TYPE CLASS C; x : INTEGER; PROCEDURE Get () : INTEGER; END C; CLASS IMPLEMENTATION C; PROCEDURE Get () : INTEGER; BEGIN RETURN x END Get; END C; PROCEDURE Mk (v : INTEGER) : C; VAR q : C; BEGIN q.x := v; RETURN q END Mk; BEGIN got := 0; IF Mk(7).Get() = 7 THEN INC(got) END; IF Mk(8).x = 8 THEN INC(got) END; IF got = 2 THEN ExitCode := 42 ELSE ExitCode := got END END TChain.