Michelson: export and printing for Duplicate_field error
This commit is contained in:
parent
695b23bd92
commit
d1b4230962
@ -64,6 +64,7 @@ let collect_error_locations errs =
|
|||||||
| Invalid_namespace (loc, _, _, _)
|
| Invalid_namespace (loc, _, _, _)
|
||||||
| Invalid_primitive (loc, _, _)
|
| Invalid_primitive (loc, _, _)
|
||||||
| Invalid_kind (loc, _, _)
|
| Invalid_kind (loc, _, _)
|
||||||
|
| Duplicate_field (loc, _)
|
||||||
| Fail_not_in_tail_position loc
|
| Fail_not_in_tail_position loc
|
||||||
| Undefined_binop (loc, _, _, _)
|
| Undefined_binop (loc, _, _, _)
|
||||||
| Undefined_unop (loc, _, _)
|
| Undefined_unop (loc, _, _)
|
||||||
@ -160,6 +161,11 @@ let report_errors ~details ~show_source ?parsed ppf errs =
|
|||||||
Format.fprintf ppf "@[<v 0>Missing contract field: %s@]"
|
Format.fprintf ppf "@[<v 0>Missing contract field: %s@]"
|
||||||
(Michelson_v1_primitives.string_of_prim prim) ;
|
(Michelson_v1_primitives.string_of_prim prim) ;
|
||||||
print_trace locations rest
|
print_trace locations rest
|
||||||
|
| Duplicate_field (loc, prim) :: rest ->
|
||||||
|
Format.fprintf ppf "@[<v 0>%aduplicate contract field: %s@]"
|
||||||
|
print_loc loc
|
||||||
|
(Michelson_v1_primitives.string_of_prim prim) ;
|
||||||
|
print_trace locations rest
|
||||||
| Runtime_contract_error (contract, expr) :: rest ->
|
| Runtime_contract_error (contract, expr) :: rest ->
|
||||||
let parsed =
|
let parsed =
|
||||||
match parsed with
|
match parsed with
|
||||||
|
@ -2214,6 +2214,17 @@ let () =
|
|||||||
(obj1 (req "prim" prim_encoding))
|
(obj1 (req "prim" prim_encoding))
|
||||||
(function Missing_field prim -> Some prim | _ -> None)
|
(function Missing_field prim -> Some prim | _ -> None)
|
||||||
(fun prim -> Missing_field prim) ;
|
(fun prim -> Missing_field prim) ;
|
||||||
|
register_error_kind
|
||||||
|
`Permanent
|
||||||
|
~id:"duplicateScriptField"
|
||||||
|
~title:"Script has a duplicated field (parse error)"
|
||||||
|
~description:
|
||||||
|
"When parsing script, a field was found more than once"
|
||||||
|
(obj2
|
||||||
|
(req "loc" location_encoding)
|
||||||
|
(req "prim" prim_encoding))
|
||||||
|
(function Duplicate_field (loc, prim) -> Some (loc, prim) | _ -> None)
|
||||||
|
(fun (loc, prim) -> Duplicate_field (loc, prim)) ;
|
||||||
register_error_kind
|
register_error_kind
|
||||||
`Permanent
|
`Permanent
|
||||||
~id:"invalidPrimitiveTypeError"
|
~id:"invalidPrimitiveTypeError"
|
||||||
|
@ -30,6 +30,7 @@ type error += Invalid_primitive of Script.location * Script.prim list * Script.p
|
|||||||
type error += Invalid_kind of Script.location * kind list * kind
|
type error += Invalid_kind of Script.location * kind list * kind
|
||||||
type error += Missing_field of Script.prim
|
type error += Missing_field of Script.prim
|
||||||
type error += Type_too_large : Script.location * int * int -> error
|
type error += Type_too_large : Script.location * int * int -> error
|
||||||
|
type error += Duplicate_field of Script.location * Script.prim
|
||||||
|
|
||||||
(* Instruction typing errors *)
|
(* Instruction typing errors *)
|
||||||
type error += Fail_not_in_tail_position of Script.location
|
type error += Fail_not_in_tail_position of Script.location
|
||||||
|
Loading…
Reference in New Issue
Block a user