ProcTypeTestImpl.Mesa
Spreitzer, May 10, 1986 2:34:16 pm PDT
ProcTypeTestImpl:
CEDAR
PROGRAM
=
BEGIN
E: ERROR = CODE;
Int: TYPE = INT;
Ref: TYPE = REF INT;
i1: INT = 47;
i2: INT = 86;
r1: Ref = NEW [INT ← i1];
r2: Ref = NEW [INT ← i2];
ArgAAResAA: PROC [Int, Ref] RETURNS [Ref, Int] ← {E};
ArgAAResNN: PROC [Int, Ref] RETURNS [s: Ref, j: Int] ← {E};
ArgNNResNN: PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] ← {E};
ArgMMResNN: PROC [k: Int, t: Ref] RETURNS [s: Ref, j: Int] ← {E};
ArgMMResMM: PROC [k: Int, t: Ref] RETURNS [u: Ref, l: Int] ← {E};
Safe: SAFE PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] ← {E};
Unsafe: UNSAFE PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] ← {E};
AnonymousDefaultArgs: PROC [Int ← i1, Ref ← r1] ← {E};
AnonymousDefaultResults: PROC RETURNS [Int ← i1, Ref ← r1] ← {E};
Arg0Res0: PROC [i: Int ←, r: Ref ←] RETURNS [s: Ref ←NIL, j: Int ←] ← {E};
Arg0Res1: PROC [i: Int ←, r: Ref ←] RETURNS [s: Ref ← r1, j: Int ← i1] ← {E};
Arg0Res2: PROC [i: Int ←, r: Ref ←] RETURNS [s: Ref ← r2, j: Int ← i2] ← {E};
Arg1Res2: PROC [i: Int ← i1, r: Ref ← r1] RETURNS [s: Ref ← r2, j: Int ← i2] ← {E};
Arg2Res2: PROC [i: Int ← i2, r: Ref ← r2] RETURNS [s: Ref ← r2, j: Int ← i2] ← {E};
ArgVResV: PROC [i: Int ← i1|TRASH, r: Ref ← r1] RETURNS [s: Ref ← r2, j: Int ← i2|TRASH] ← {E};
ArgAAResAA ← ArgAAResNN;
ArgAAResNN ← ArgAAResAA;
ArgAAResNN ← ArgNNResNN;
ArgNNResNN ← ArgAAResNN;
ArgNNResNN ← ArgMMResNN;
ArgMMResNN ← ArgMMResMM;
Safe ← Unsafe;
Unsafe ← Safe;
Arg0Res0 ← Arg0Res1;
Arg0Res1 ← Arg0Res0;
Arg0Res1 ← Arg0Res2;
Arg0Res2 ← Arg0Res1;
Arg0Res2 ← Arg0Res0;
Arg0Res0 ← Arg0Res2;
Arg0Res2 ← Arg1Res2;
Arg1Res2 ← Arg0Res2;
Arg1Res2 ← Arg2Res2;
Arg2Res2 ← Arg1Res2;
Arg2Res2 ← Arg0Res2;
Arg0Res2 ← Arg2Res2;
END.