tock-mirror/testcases/automatic/initial-result-1.occ.test
Adam Sampson 6ee21f76c9 Initial work on supporting INITIAL and RESULT abbreviations.
This fixes the AST, parser and typechecker, and adds a pass to
transform Result back into Abbrev, but doesn't transform Initial yet.
(It actually works for trivial stuff anyway, but it won't do the right
thing for complex types or PROC parameters.)

It appears (to me) to make sense to support INITIAL/RESULT reshaping
and retyping too, so this does.

Refs #42.
2008-06-02 20:41:37 +00:00

82 lines
1.8 KiB
Plaintext

-- This file tests INITIAL and RESULT abbreviations.
PROC main ()
INT var:
REAL32 var.r:
BYTE var.b:
VAL INT const IS 42:
VAL REAL32 const.r IS 9.8:
VAL BYTE const.b IS 'x':
%%
SKIP
:
%PASS Normal kinds of abbreviations
INT abbrev IS var:
inferred.abbrev IS var:
VAL INT val IS var:
VAL inferred.val IS var:
VAL INT val.const IS const:
VAL inferred.val.const IS const:
%PASS Initial-abbreviate var
INITIAL INT init IS var:
%PASS Initial-abbreviate const
INITIAL INT init IS const:
%FAIL Initial-abbreviate wrong type
INITIAL INT init IS const.r:
%PASS Initial-abbreviate inferred type
INITIAL init IS const:
%PASS Result-abbreviate var
RESULT INT result IS var:
%FAIL Result-abbreviate const
RESULT INT result IS const:
%FAIL Result-abbreviate wrong type
RESULT INT result IS var.r:
%PASS Result-abbreviate inferred type from var
RESULT result IS var:
%FAIL Result-abbreviate inferred type from const
RESULT result IS const:
%PASS Normal kinds of retypings
INT32 retyped RETYPES var.r:
VAL INT32 val.retypes RETYPES var.r:
VAL INT32 val.retypes.const RETYPES const.r:
%FAIL Normal kind of retyping from wrong size var
INT32 retyped RETYPES var.b:
%FAIL Normal kind of retyping from wrong size const
VAL INT32 retyped RETYPES const.b:
%PASS Initial retyping from var
INITIAL INT32 retyped RETYPES var.r:
%PASS Initial retyping from const
INITIAL INT32 retyped RETYPES const.r:
%FAIL Initial retyping from wrong size var
INITIAL INT32 retyped RETYPES var.b:
%FAIL Initial retyping from wrong size const
INITIAL INT32 retyped RETYPES const.b:
%PASS Result retyping from var
RESULT INT32 retyped RETYPES var.r:
%FAIL Result retyping from const
RESULT INT32 retyped RETYPES const.r:
%FAIL Result retyping from wrong size
RESULT INT32 retyped RETYPES var.b:
%