MODULE Test;
TYPE
- Rider = RECORD i : INTEGER END;
+ Elem = POINTER TO ElemDesc;
+ ElemDesc = RECORD END;
-PROCEDURE X;
- VAR
- r : Rider;
-BEGIN
- r.i := 666;
-END X;
+ ElemMsg = RECORD END;
+ CopyMsg = RECORD (ElemMsg) a : Elem; END;
+
+ Alien = POINTER TO RECORD (ElemDesc) END;
+PROCEDURE HandleAlien (VAR msg: ElemMsg);
BEGIN
- X;
+ WITH msg: CopyMsg DO msg.a := NIL END
+END HandleAlien;
+
END Test.