https://gitlab.com/tezos/tezos
Raw File
Tip revision: 859ad53d118deb65fda70547abe20731c6e92aba authored by Emma Turner on 09 October 2023, 10:54:43 UTC
nix: disable stackprotector on all platforms
Tip revision: 859ad53
unpair.tz
parameter (unit :param_unit);
storage (unit :u1);
code { DROP ;

       # No annotation
       UNIT; UNIT; PAIR; UNPAIR; DROP 2;

       # Variable annotations are overriden by UNPAIR
       UNIT @b; UNIT @a; PAIR; UNPAIR @c @d; DROP 2;

       UNIT @b; UNIT @a; PAIR %@ %@;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Same test with non-matching field and variable annotations
       UNIT @d; UNIT @c; PAIR %a %b;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Same tests without the variable annotations in input
       UNIT; UNIT; PAIR %a %b;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Tests for @%%
       UNIT; UNIT; PAIR %a %b @p;
       DUP; UNPAIR @%% @b; DROP 2;
       DUP; UNPAIR @a @%%; DROP 2;
       DUP; UNPAIR @%% @%%; DROP 2;
       DUP; UNPAIR @% @%%; DROP 2;
       DUP; UNPAIR @%% @%; DROP 2;
       DROP;

       # Swapping variable annotations
       UNIT @b; UNIT @a; PAIR @c; UNPAIR @b @a; DROP 2;

       # End of test
       UNIT; NIL operation; PAIR }
back to top