Don't dip for vars after the second

This commit is contained in:
Tom Jack 2020-02-03 17:33:47 -06:00 committed by Pierre-Emmanuel Wulfman
parent b05e7ef613
commit 94c35e15dd
2 changed files with 579 additions and 481 deletions

View File

@ -7,16 +7,16 @@ let bad_contract basename =
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "measure-contract" ; contract "coase.ligo" ; "main" ] ; run_ligo_good [ "measure-contract" ; contract "coase.ligo" ; "main" ] ;
[%expect {| 1842 bytes |}] ; [%expect {| 1682 bytes |}] ;
run_ligo_good [ "measure-contract" ; contract "multisig.ligo" ; "main" ] ; run_ligo_good [ "measure-contract" ; contract "multisig.ligo" ; "main" ] ;
[%expect {| 1138 bytes |}] ; [%expect {| 1003 bytes |}] ;
run_ligo_good [ "measure-contract" ; contract "multisig-v2.ligo" ; "main" ] ; run_ligo_good [ "measure-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
[%expect {| 2797 bytes |}] ; [%expect {| 2522 bytes |}] ;
run_ligo_good [ "measure-contract" ; contract "vote.mligo" ; "main" ] ; run_ligo_good [ "measure-contract" ; contract "vote.mligo" ; "main" ] ;
[%expect {| 626 bytes |}] ; [%expect {| 586 bytes |}] ;
run_ligo_good [ "compile-parameter" ; contract "coase.ligo" ; "main" ; "Buy_single (record card_to_buy = 1n end)" ] ; run_ligo_good [ "compile-parameter" ; contract "coase.ligo" ; "main" ; "Buy_single (record card_to_buy = 1n end)" ] ;
[%expect {| (Left (Left 1)) |}] ; [%expect {| (Left (Left 1)) |}] ;
@ -74,8 +74,9 @@ let%expect_test _ =
IF_LEFT IF_LEFT
{ DUP ; { DUP ;
IF_LEFT IF_LEFT
{ DIP 2 { DUP } ; { DIG 2 ;
DIG 2 ; DUP ;
DUG 3 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
@ -87,8 +88,9 @@ let%expect_test _ =
DUP ; DUP ;
CAR ; CAR ;
CAR ; CAR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
GET ; GET ;
IF_NONE IF_NONE
{ PUSH string "buy_single: No card pattern." ; FAILWITH } { PUSH string "buy_single: No card pattern." ; FAILWITH }
@ -108,26 +110,32 @@ let%expect_test _ =
COMPARE ; COMPARE ;
GT ; GT ;
IF { PUSH string "Not enough money" ; FAILWITH } { PUSH unit Unit } ; IF { PUSH string "Not enough money" ; FAILWITH } { PUSH unit Unit } ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
CDR ; CDR ;
ADD ; ADD ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DIP 5 { DUP } ; DUP ;
DUG 5 ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CAR ; CAR ;
CAR ; CAR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DIP 8 { DUP } ; DUP ;
DUG 3 ;
DIG 8 ; DIG 8 ;
DUP ;
DUG 9 ;
SWAP ; SWAP ;
SOME ; SOME ;
SWAP ; SWAP ;
@ -138,12 +146,14 @@ let%expect_test _ =
DUP ; DUP ;
CAR ; CAR ;
CDR ; CDR ;
DIP 7 { DUP } ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
SENDER ; SENDER ;
PAIR ; PAIR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
SWAP ; SWAP ;
SOME ; SOME ;
@ -159,8 +169,9 @@ let%expect_test _ =
PAIR ; PAIR ;
DUP ; DUP ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
ADD ; ADD ;
SWAP ; SWAP ;
@ -170,8 +181,9 @@ let%expect_test _ =
NIL operation ; NIL operation ;
PAIR ; PAIR ;
DIP { DROP 12 } } DIP { DROP 12 } }
{ DIP 2 { DUP } ; { DIG 2 ;
DIG 2 ; DUP ;
DUG 3 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
@ -183,8 +195,9 @@ let%expect_test _ =
DUP ; DUP ;
CAR ; CAR ;
CDR ; CDR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
GET ; GET ;
IF_NONE IF_NONE
{ PUSH string "sell_single: No card." ; FAILWITH } { PUSH string "sell_single: No card." ; FAILWITH }
@ -197,12 +210,14 @@ let%expect_test _ =
NEQ ; NEQ ;
IF { PUSH string "This card doesn't belong to you" ; FAILWITH } IF { PUSH string "This card doesn't belong to you" ; FAILWITH }
{ PUSH unit Unit } ; { PUSH unit Unit } ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CAR ; CAR ;
CAR ; CAR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
GET ; GET ;
IF_NONE IF_NONE
@ -210,24 +225,29 @@ let%expect_test _ =
{ DUP ; DIP { DROP } } ; { DUP ; DIP { DROP } } ;
DUP ; DUP ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
SUB ; SUB ;
ABS ; ABS ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DIP 5 { DUP } ; DUP ;
DUG 5 ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CAR ; CAR ;
CAR ; CAR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DIP 6 { DUP } ; DUP ;
DUG 3 ;
DIG 6 ; DIG 6 ;
DUP ;
DUG 7 ;
CDR ; CDR ;
SWAP ; SWAP ;
SOME ; SOME ;
@ -239,16 +259,19 @@ let%expect_test _ =
DUP ; DUP ;
CAR ; CAR ;
CDR ; CDR ;
DIP 7 { DUP } ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
NONE (pair (address %card_owner) (nat %card_pattern)) ; NONE (pair (address %card_owner) (nat %card_pattern)) ;
SWAP ; SWAP ;
UPDATE ; UPDATE ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CAR ; CAR ;
MUL ; MUL ;
SENDER ; SENDER ;
@ -257,18 +280,21 @@ let%expect_test _ =
{ PUSH string "sell_single: No contract." ; FAILWITH } { PUSH string "sell_single: No contract." ; FAILWITH }
{ DUP ; DIP { DROP } } ; { DUP ; DIP { DROP } } ;
DUP ; DUP ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
UNIT ; UNIT ;
TRANSFER_TOKENS ; TRANSFER_TOKENS ;
DUP ; DUP ;
NIL operation ; NIL operation ;
SWAP ; SWAP ;
CONS ; CONS ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DIP 5 { DUP } ; DUP ;
DUG 6 ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ; DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
@ -292,8 +318,9 @@ let%expect_test _ =
CAR ; CAR ;
CDR ; CDR ;
DUP ; DUP ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CAR ; CAR ;
GET ; GET ;
IF_NONE IF_NONE
@ -307,21 +334,26 @@ let%expect_test _ =
NEQ ; NEQ ;
IF { PUSH string "This card doesn't belong to you" ; FAILWITH } IF { PUSH string "This card doesn't belong to you" ; FAILWITH }
{ PUSH unit Unit } ; { PUSH unit Unit } ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DIP 3 { DUP } ; DUP ;
DUG 4 ;
DIG 3 ; DIG 3 ;
DIP 3 { DUP } ; DUP ;
DUG 4 ;
DIG 3 ; DIG 3 ;
DIP 7 { DUP } ; DUP ;
DUG 4 ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
CDR ; CDR ;
SWAP ; SWAP ;
CDR ; CDR ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 7 { DUP } ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
CAR ; CAR ;
SWAP ; SWAP ;
SOME ; SOME ;
@ -355,9 +387,10 @@ let%expect_test _ =
IF_LEFT IF_LEFT
{ DUP ; { DUP ;
IF_LEFT IF_LEFT
{ DIP 2 { DUP } ; DIG 2 ; NIL operation ; PAIR ; DIP { DROP } } { DIG 2 ; DUP ; DUG 3 ; NIL operation ; PAIR ; DIP { DROP } }
{ DIP 2 { DUP } ; { DIG 2 ;
DIG 2 ; DUP ;
DUG 3 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
@ -371,13 +404,15 @@ let%expect_test _ =
MEM ; MEM ;
NOT ; NOT ;
IF { PUSH string "Unauthorized address" ; FAILWITH } { PUSH unit Unit } ; IF { PUSH string "Unauthorized address" ; FAILWITH } { PUSH unit Unit } ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CAR ; CAR ;
DUP ; DUP ;
PACK ; PACK ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CAR ; CAR ;
CAR ; CAR ;
CDR ; CDR ;
@ -389,30 +424,36 @@ let%expect_test _ =
IF { PUSH string "Message size exceed maximum limit" ; FAILWITH } IF { PUSH string "Message size exceed maximum limit" ; FAILWITH }
{ PUSH unit Unit } ; { PUSH unit Unit } ;
EMPTY_SET address ; EMPTY_SET address ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 6 { DUP } ;
DIG 6 ; DIG 6 ;
DUP ;
DUG 7 ;
CAR ; CAR ;
CDR ; CDR ;
CDR ; CDR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
GET ; GET ;
IF_NONE IF_NONE
{ DIP 6 { DUP } ; { DIG 6 ;
DIG 6 ; DUP ;
DIP 7 { DUP } ; DUG 7 ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 9 { DUP } ;
DIG 9 ; DIG 9 ;
DUP ;
DUG 10 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
@ -432,10 +473,12 @@ let%expect_test _ =
PUSH bool True ; PUSH bool True ;
SENDER ; SENDER ;
UPDATE ; UPDATE ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DIP 2 { DUP } ; DUP ;
DUG 3 ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
@ -447,17 +490,20 @@ let%expect_test _ =
{ DUP ; { DUP ;
SENDER ; SENDER ;
MEM ; MEM ;
IF { DIP 7 { DUP } ; DIG 7 } IF { DIG 7 ; DUP ; DUG 8 }
{ DIP 7 { DUP } ; { DIG 7 ;
DIG 7 ; DUP ;
DIP 8 { DUP } ; DUG 8 ;
DIG 8 ; DIG 8 ;
DUP ;
DUG 9 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 10 { DUP } ;
DIG 10 ; DIG 10 ;
DUP ;
DUG 11 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
@ -473,8 +519,9 @@ let%expect_test _ =
PAIR ; PAIR ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 8 { DUP } ;
DIG 8 ; DIG 8 ;
DUP ;
DUG 9 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
DIP { DROP 2 } } ; DIP { DROP 2 } } ;
@ -483,10 +530,12 @@ let%expect_test _ =
PUSH bool True ; PUSH bool True ;
SENDER ; SENDER ;
UPDATE ; UPDATE ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DIP 2 { DUP } ; DUP ;
DUG 4 ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
@ -519,29 +568,35 @@ let%expect_test _ =
IF { PUSH string "Maximum number of proposal reached" ; FAILWITH } IF { PUSH string "Maximum number of proposal reached" ; FAILWITH }
{ PUSH unit Unit } ; { PUSH unit Unit } ;
NIL operation ; NIL operation ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
CDR ; CDR ;
CDR ; CDR ;
DIP 6 { DUP } ;
DIG 6 ; DIG 6 ;
DUP ;
DUG 7 ;
SIZE ; SIZE ;
COMPARE ; COMPARE ;
GE ; GE ;
IF { DIP 4 { DUP } ; IF { DIG 4 ;
DIG 4 ; DUP ;
DIP 5 { DUP } ; DUG 5 ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CAR ; CAR ;
CDR ; CDR ;
CDR ; CDR ;
DIP 12 { DUP } ;
DIG 12 ; DIG 12 ;
DUP ;
DUG 13 ;
NONE (set address) ; NONE (set address) ;
SWAP ; SWAP ;
UPDATE ; UPDATE ;
@ -555,16 +610,19 @@ let%expect_test _ =
CDR ; CDR ;
CAR ; CAR ;
CDR ; CDR ;
DIP 13 { DUP } ;
DIG 13 ; DIG 13 ;
DUP ;
DUG 14 ;
SWAP ; SWAP ;
EXEC ; EXEC ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
DIP 13 { DUP } ;
DIG 13 ; DIG 13 ;
DIP 3 { DUP } ; DUP ;
DUG 14 ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CDR ; CDR ;
CAR ; CAR ;
CDR ; CDR ;
@ -590,27 +648,31 @@ let%expect_test _ =
SWAP ; SWAP ;
CDR ; CDR ;
CAR ; CAR ;
DIP 11 { DUP } ;
DIG 11 ; DIG 11 ;
DUP ;
DUG 12 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
MEM ; MEM ;
IF { DIP { DUP } ; IF { DIP { DUP } ;
SWAP ; SWAP ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CDR ; CDR ;
CDR ; CDR ;
SUB ; SUB ;
ABS ; ABS ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
SWAP ; SWAP ;
SOME ; SOME ;
SWAP ; SWAP ;
@ -620,35 +682,41 @@ let%expect_test _ =
PAIR ; PAIR ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
DIP { DROP 2 } } DIP { DROP 2 } }
{ DIP { DUP } ; SWAP } ; { DIP { DUP } ; SWAP } ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CDR ; CDR ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
PAIR ; PAIR ;
CAR ; CAR ;
DIP { DROP 4 } } ; DIP { DROP 4 } } ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DIP 4 { DUP } ; DUP ;
DUG 5 ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
SWAP ; SWAP ;
CDR ; CDR ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
SWAP ; SWAP ;
CAR ; CAR ;
PAIR ; PAIR ;
@ -657,17 +725,21 @@ let%expect_test _ =
PAIR ; PAIR ;
DIP { DROP 4 } } DIP { DROP 4 } }
{ DUP ; { DUP ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DIP 6 { DUP } ; DUP ;
DUG 6 ;
DIG 6 ; DIG 6 ;
DUP ;
DUG 7 ;
CAR ; CAR ;
CDR ; CDR ;
CDR ; CDR ;
DIP 8 { DUP } ;
DIG 8 ; DIG 8 ;
DIP 14 { DUP } ; DUP ;
DUG 9 ;
DIG 14 ; DIG 14 ;
DUP ;
DUG 15 ;
SWAP ; SWAP ;
SOME ; SOME ;
SWAP ; SWAP ;
@ -711,21 +783,25 @@ let%expect_test _ =
UPDATE ; UPDATE ;
DUP ; DUP ;
SIZE ; SIZE ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
SIZE ; SIZE ;
COMPARE ; COMPARE ;
NEQ ; NEQ ;
IF { DIP 3 { DUP } ; IF { DIG 3 ;
DIG 3 ; DUP ;
DIP 4 { DUP } ; DUG 4 ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 6 { DUP } ;
DIG 6 ; DIG 6 ;
DUP ;
DUG 7 ;
CDR ; CDR ;
CAR ; CAR ;
CAR ; CAR ;
@ -742,15 +818,17 @@ let%expect_test _ =
PAIR ; PAIR ;
SWAP ; SWAP ;
PAIR ; PAIR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DUP ;
DUG 5 ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
DIP { DROP 2 } } DIP { DROP 2 } }
{ DIP 3 { DUP } ; DIG 3 } ; { DIG 3 ; DUP ; DUG 4 } ;
PUSH nat 0 ; PUSH nat 0 ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
SIZE ; SIZE ;
COMPARE ; COMPARE ;
EQ ; EQ ;
@ -760,8 +838,9 @@ let%expect_test _ =
CAR ; CAR ;
CDR ; CDR ;
CDR ; CDR ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
NONE (set address) ; NONE (set address) ;
SWAP ; SWAP ;
UPDATE ; UPDATE ;
@ -779,15 +858,18 @@ let%expect_test _ =
{ DUP ; { DUP ;
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CAR ; CAR ;
CDR ; CDR ;
CDR ; CDR ;
DIP 4 { DUP } ;
DIG 4 ; DIG 4 ;
DIP 7 { DUP } ; DUP ;
DUG 5 ;
DIG 7 ; DIG 7 ;
DUP ;
DUG 8 ;
SWAP ; SWAP ;
SOME ; SOME ;
SWAP ; SWAP ;
@ -799,10 +881,12 @@ let%expect_test _ =
PAIR ; PAIR ;
PAIR ; PAIR ;
DIP { DROP } } ; DIP { DROP } } ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DIP 2 { DUP } ; DUP ;
DUG 6 ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
DIP { DROP ; DUP } ; DIP { DROP ; DUP } ;
SWAP ; SWAP ;
DIP { DROP 5 } } ; DIP { DROP 5 } } ;
@ -831,14 +915,16 @@ let%expect_test _ =
DIP { DUP } ; DIP { DUP } ;
SWAP ; SWAP ;
CDR ; CDR ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CAR ; CAR ;
CDR ; CDR ;
PAIR ; PAIR ;
PUSH nat 0 ; PUSH nat 0 ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CAR ; CAR ;
CAR ; CAR ;
PAIR ; PAIR ;
@ -857,15 +943,18 @@ let%expect_test _ =
CDR ; CDR ;
NOW ; NOW ;
SENDER ; SENDER ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
CAR ; CAR ;
IF_LEFT IF_LEFT
{ DIP 3 { DUP } ; { DIG 3 ;
DIG 3 ; DUP ;
DUG 4 ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CAR ; CAR ;
CAR ; CAR ;
CDR ; CDR ;
@ -876,11 +965,13 @@ let%expect_test _ =
PAIR ; PAIR ;
PAIR ; PAIR ;
DIP { DROP } } DIP { DROP } }
{ DIP 3 { DUP } ; { DIG 3 ;
DIG 3 ; DUP ;
DUG 4 ;
PUSH nat 1 ; PUSH nat 1 ;
DIP 5 { DUP } ;
DIG 5 ; DIG 5 ;
DUP ;
DUG 6 ;
CDR ; CDR ;
CDR ; CDR ;
ADD ; ADD ;
@ -895,8 +986,9 @@ let%expect_test _ =
SWAP ; SWAP ;
CDR ; CDR ;
CAR ; CAR ;
DIP 3 { DUP } ;
DIG 3 ; DIG 3 ;
DUP ;
DUG 4 ;
PUSH bool True ; PUSH bool True ;
SWAP ; SWAP ;
UPDATE ; UPDATE ;
@ -1125,8 +1217,9 @@ ligo: in file "create_contract_var.mligo", line 6, character 35 to line 10, char
SWAP ; SWAP ;
CDR ; CDR ;
NIL operation ; NIL operation ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CAR ; CAR ;
CONS ; CONS ;
PAIR ; PAIR ;
@ -1223,12 +1316,14 @@ let%expect_test _ =
PUSH mutez 300000000 ; PUSH mutez 300000000 ;
PUSH int 2 ; PUSH int 2 ;
TRANSFER_TOKENS ; TRANSFER_TOKENS ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
NIL operation ; NIL operation ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CONS ; CONS ;
PAIR ; PAIR ;
DIP { DROP 3 } } } |}] ; DIP { DROP 3 } } } |}] ;
@ -1242,12 +1337,14 @@ let%expect_test _ =
PUSH mutez 300000000 ; PUSH mutez 300000000 ;
PUSH int 2 ; PUSH int 2 ;
TRANSFER_TOKENS ; TRANSFER_TOKENS ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CDR ; CDR ;
NIL operation ; NIL operation ;
DIP 2 { DUP } ;
DIG 2 ; DIG 2 ;
DUP ;
DUG 3 ;
CONS ; CONS ;
PAIR ; PAIR ;
DIP { DROP 3 } } } |}] ; DIP { DROP 3 } } } |}] ;

View File

@ -24,8 +24,9 @@ let get : environment -> expression_variable -> michelson result = fun e s ->
] ]
in in
let aux_dig = fun n -> seq [ let aux_dig = fun n -> seq [
dipn n i_dup ;
i_dig n ; i_dig n ;
i_dup ;
i_dug (n + 1) ;
] ]
in in
let code = let code =