type failwith

This commit is contained in:
galfour 2019-09-26 19:01:07 +02:00
parent e0e5228254
commit 08809f8a5d
3 changed files with 11 additions and 7 deletions

View File

@ -312,11 +312,12 @@ module Typer = struct
then ok @@ t_bytes ()
else simple_fail "bad slice"
let failwith_ = typer_1 "FAILWITH" @@ fun t ->
let failwith_ = typer_1_opt "FAILWITH" @@ fun t opt ->
let%bind () =
Assert.assert_true @@
(is_t_string t) in
ok @@ t_unit ()
let default = t_unit () in
ok @@ Simple_utils.Option.unopt ~default opt
let map_get_force = typer_2 "MAP_GET_FORCE" @@ fun i m ->
let%bind (src, dst) = bind_map_or (get_t_map , get_t_big_map) m in

View File

@ -11,7 +11,7 @@ function main (const p : param; const s : unit) : list(operation) * unit is
}
with ((nil : list(operation)), s)
function foobar (const i : int) : unit is
function foobar (const i : int) : int is
var p : param := Zero (42n) ;
block {
if i > 0 then block {
@ -27,4 +27,7 @@ function foobar (const i : int) : unit is
| Pos (n) -> skip
end
}
} with unit
} with case p of
| Zero (n) -> i
| Pos (n) -> (failwith ("waaaa") : int)
end

View File

@ -652,10 +652,10 @@ let failwith_ligo () : unit result =
let%bind _ = should_work (e_pair (e_constructor "Pos" (e_nat 1)) (e_unit ())) in
let%bind _ = should_fail (e_pair (e_constructor "Pos" (e_nat 0)) (e_unit ())) in
let should_fail input = expect_fail program "foobar" (e_int input) in
let should_work input = expect_eq program "foobar" (e_int input) (e_unit ()) in
let%bind () = should_fail @@ 10 in
let should_work input n = expect_eq program "foobar" (e_int input) (e_int n) in
let%bind () = should_fail 10 in
let%bind () = should_fail @@ -10 in
let%bind () = should_work @@ 5 in
let%bind () = should_work 5 6 in
ok ()
let failwith_mligo () : unit result =