diff --git a/Test.obn b/Test.obn
index 3c862c1d5917486426e84aa32439b268bb8baf88..8aea2558a93efbec45e4a9117831ef6c41a9542a 100644 (file)
--- a/Test.obn
+++ b/Test.obn
MODULE Test;
TYPE
- Object = RECORD
- mth : PROCEDURE;
- END;
+ Elem = POINTER TO ElemDesc;
+ ElemDesc = RECORD END;
-VAR
- p : PROCEDURE;
- o, a : Object;
+ ElemMsg = RECORD END;
+ CopyMsg = RECORD (ElemMsg) a : Elem; END;
-PROCEDURE X;
-END X;
+ Alien = POINTER TO RECORD (ElemDesc) END;
-PROCEDURE Z(VAR g : Object);
+PROCEDURE HandleAlien (VAR msg: ElemMsg);
BEGIN
- g.mth;
-END Z;
+ WITH msg: CopyMsg DO msg.a := NIL END
+END HandleAlien;
-BEGIN
- p := X;
- ASSERT(p # NIL);
- o.mth := X;
- ASSERT(o.mth # NIL);
- a := o;
- ASSERT(a.mth # NIL);
- Z(a);
END Test.