diff --git a/src/main/compile/of_michelson.ml b/src/main/compile/of_michelson.ml index 87cfbb5a7..3602a495e 100644 --- a/src/main/compile/of_michelson.ml +++ b/src/main/compile/of_michelson.ml @@ -23,6 +23,9 @@ module Errors = struct let code = Format.asprintf "%a" Michelson.pp c in "bad contract type\n"^code in error title_type_check_msg message + let ran_out_of_gas () = + let message () = "Ran out of gas!" in + error title_type_check_msg message let unknown () = let message () = "unknown error" in @@ -47,6 +50,7 @@ let build_contract : Compiler.compiled_expression -> Michelson.michelson result | Err_parameter -> fail @@ Errors.bad_parameter contract () | Err_storage -> fail @@ Errors.bad_storage contract () | Err_contract -> fail @@ Errors.bad_contract contract () + | Err_gas -> fail @@ Errors.ran_out_of_gas () | Err_unknown -> fail @@ Errors.unknown () type check_type = Check_parameter | Check_storage diff --git a/vendors/ligo-utils/proto-alpha-utils/x_memory_proto_alpha.ml b/vendors/ligo-utils/proto-alpha-utils/x_memory_proto_alpha.ml index 06b740983..d5d1b3ab7 100644 --- a/vendors/ligo-utils/proto-alpha-utils/x_memory_proto_alpha.ml +++ b/vendors/ligo-utils/proto-alpha-utils/x_memory_proto_alpha.ml @@ -1107,16 +1107,17 @@ let unparse_ty_michelson ty = type typecheck_res = | Type_checked | Err_parameter | Err_storage | Err_contract + | Err_gas | Err_unknown let typecheck_contract contract = let contract' = Tezos_micheline.Micheline.strip_locations contract in - let ctxt = Raw_context.set_gas_unlimited dummy_environment.tezos_context in - Script_ir_translator.typecheck_code ctxt contract' >>= fun x -> + Script_ir_translator.typecheck_code dummy_environment.tezos_context contract' >>= fun x -> match x with | Ok _res -> return Type_checked | Error (Script_tc_errors.Ill_formed_type (Some "parameter", _code, _)::_) -> return Err_parameter | Error (Script_tc_errors.Ill_formed_type (Some "storage", _code, _)::_) -> return Err_storage + | Error (Script_tc_errors.Ill_typed_contract _ :: Script_tc_errors.Cannot_serialize_error :: []) -> return @@ Err_gas | Error (Script_tc_errors.Ill_typed_contract (_code, _)::_) -> return @@ Err_contract | Error _ -> return Err_unknown diff --git a/vendors/ligo-utils/tezos-protocol-alpha/script_ir_translator.ml b/vendors/ligo-utils/tezos-protocol-alpha/script_ir_translator.ml index df884eb02..a369758f4 100644 --- a/vendors/ligo-utils/tezos-protocol-alpha/script_ir_translator.ml +++ b/vendors/ligo-utils/tezos-protocol-alpha/script_ir_translator.ml @@ -5325,8 +5325,6 @@ let typecheck_code : }) ctxt ~legacy - ~type_logger:(fun loc bef aft -> - type_map := (loc, (bef, aft)) :: !type_map) (arg_type_full, None) ret_type_full code_field