DEADSOFTWARE

Исправлено действие конструкции WITH
[dsw-obn.git] / Test.obn
index 3c862c1d5917486426e84aa32439b268bb8baf88..8aea2558a93efbec45e4a9117831ef6c41a9542a 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,28 +1,17 @@
 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.