fixed last bug
This commit is contained in:
parent
af588933f4
commit
31a2a96810
@ -300,7 +300,7 @@ and translate_expression (expr:expression) (env:environment) : michelson result
|
|||||||
| "ITER" -> (
|
| "ITER" -> (
|
||||||
let%bind code = ok (seq [
|
let%bind code = ok (seq [
|
||||||
expr' ;
|
expr' ;
|
||||||
i_iter (seq [body' ; dip i_drop]) ;
|
i_iter (seq [body' ; i_drop ; i_drop]) ;
|
||||||
i_push_unit ;
|
i_push_unit ;
|
||||||
]) in
|
]) in
|
||||||
return code
|
return code
|
||||||
|
9
src/contracts/set_arithmetic-1.ligo
Normal file
9
src/contracts/set_arithmetic-1.ligo
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
function iter_op (const s : set(int)) : int is
|
||||||
|
var r : int := 0 ;
|
||||||
|
function aggregate (const i : int) : unit is
|
||||||
|
begin
|
||||||
|
r := r + i ;
|
||||||
|
end with unit
|
||||||
|
begin
|
||||||
|
set_iter(s , aggregate) ;
|
||||||
|
end with r
|
@ -1,13 +1,3 @@
|
|||||||
function iter_op (const s : set(int)) : int is
|
|
||||||
var r : int := 0 ;
|
|
||||||
function aggregate (const i : int) : unit is
|
|
||||||
begin
|
|
||||||
r := r + i ;
|
|
||||||
end with unit
|
|
||||||
begin
|
|
||||||
set_iter(s , aggregate) ;
|
|
||||||
end with r
|
|
||||||
|
|
||||||
const s_e : set(string) = (set_empty : set(string))
|
const s_e : set(string) = (set_empty : set(string))
|
||||||
|
|
||||||
const s_fb : set(string) = set [
|
const s_fb : set(string) = set [
|
||||||
|
@ -167,6 +167,11 @@ let string_arithmetic () : unit result =
|
|||||||
|
|
||||||
let set_arithmetic () : unit result =
|
let set_arithmetic () : unit result =
|
||||||
let%bind program = type_file "./contracts/set_arithmetic.ligo" in
|
let%bind program = type_file "./contracts/set_arithmetic.ligo" in
|
||||||
|
let%bind program_1 = type_file "./contracts/set_arithmetic-1.ligo" in
|
||||||
|
let%bind () =
|
||||||
|
expect_eq program_1 "iter_op"
|
||||||
|
(e_set [e_int 2 ; e_int 4 ; e_int 7])
|
||||||
|
(e_int 13) in
|
||||||
let%bind () =
|
let%bind () =
|
||||||
expect_eq program "add_op"
|
expect_eq program "add_op"
|
||||||
(e_set [e_string "foo" ; e_string "bar"])
|
(e_set [e_string "foo" ; e_string "bar"])
|
||||||
@ -191,10 +196,6 @@ let set_arithmetic () : unit result =
|
|||||||
expect_eq program "mem_op"
|
expect_eq program "mem_op"
|
||||||
(e_set [e_string "foo" ; e_string "bar"])
|
(e_set [e_string "foo" ; e_string "bar"])
|
||||||
(e_bool false) in
|
(e_bool false) in
|
||||||
let%bind () =
|
|
||||||
expect_eq program "iter_op"
|
|
||||||
(e_set [e_int 2 ; e_int 4 ; e_int 7])
|
|
||||||
(e_int 13) in
|
|
||||||
ok ()
|
ok ()
|
||||||
|
|
||||||
let unit_expression () : unit result =
|
let unit_expression () : unit result =
|
||||||
|
Loading…
Reference in New Issue
Block a user