Skip to content

Instantly share code, notes, and snippets.

@valexey
Created December 3, 2013 21:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valexey/7777367 to your computer and use it in GitHub Desktop.
Save valexey/7777367 to your computer and use it in GitHub Desktop.
MODULE A;
IMPORT StdLog;
TYPE
T0* = EXTENSIBLE RECORD END;
PT* = POINTER TO T0;
VAR
r* : PT;
PROCEDURE (ob : PT) Some*(), NEW, EXTENSIBLE;
BEGIN
StdLog.Int(42);
END Some;
PROCEDURE Test*(); BEGIN
r.Some()
END Test;
BEGIN
END A.
MODULE B;
IMPORT A, StdLog;
TYPE
T1* = RECORD (A.T0) END;
PT* = POINTER TO T1;
VAR
r : PT;
PROCEDURE (ob : PT) Some*();
BEGIN
StdLog.Int(13)
END Some;
PROCEDURE Test*();
BEGIN
NEW(r);
A.r := r;
A.Test();
END Test;
END B.
(!) B.Test
Unload B
(!) A.Test
Trap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment