DEADSOFTWARE

Исправлено действие конструкции WITH
[dsw-obn.git] / Test.obn
index 3c869eab01977277c2f1c68f2cbc88b4f80319ea..8aea2558a93efbec45e4a9117831ef6c41a9542a 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,19 +1,17 @@
 MODULE Test;
 
-IMPORT SYSTEM, Out;
+TYPE
+  Elem = POINTER TO ElemDesc;
+  ElemDesc = RECORD END;
 
-VAR
-  i, j : INTEGER;
+  ElemMsg = RECORD END;
+  CopyMsg = RECORD (ElemMsg) a : Elem; END;
 
-BEGIN
-  i := 1;
-  j := -32;
-  Out.Int(SYSTEM.ROT(i, -1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(1, -1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(i, 1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(1, 1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(j, -1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(-32, -1), 0); Out.Ln;
-  Out.Int(SYSTEM.ROT(j, 1), 0); Out.String(" = "); Out.Int(SYSTEM.ROT(-32, 1), 0); Out.Ln;
+  Alien = POINTER TO RECORD (ElemDesc) END;
 
-  ASSERT(SYSTEM.ROT(i, -1) = SYSTEM.ROT(1, -1));
+PROCEDURE HandleAlien (VAR msg: ElemMsg);
+BEGIN
+  WITH msg: CopyMsg DO msg.a := NIL END
+END HandleAlien;
 
-  ASSERT(SYSTEM.ROT(i,  1) = SYSTEM.ROT(1,  1));
 END Test.