t_retmeth.mod 511 B

123456789101112131415161718192021222324
  1. MODULE TRetMeth;
  2. (* A method returning a composite (record) result, with a method-local
  3. variable. Exit 42. *)
  4. VAR ExitCode : INTEGER;
  5. TYPE
  6. Rec = RECORD a, b : INTEGER END;
  7. CLASS C;
  8. x : INTEGER;
  9. PROCEDURE Get () : Rec;
  10. END C;
  11. CLASS IMPLEMENTATION C;
  12. PROCEDURE Get () : Rec;
  13. VAR q : Rec;
  14. BEGIN q.a := x; q.b := x + 1; RETURN q END Get;
  15. END C;
  16. VAR c : C; r : Rec;
  17. BEGIN
  18. c.x := 10;
  19. r := c.Get();
  20. IF (r.a = 10) AND (r.b = 11) THEN ExitCode := 42 ELSE ExitCode := 1 END
  21. END TRetMeth.