errors are printed to std err:

this has the weird side effect to indent the error after 'ligo: error'
This commit is contained in:
Lesenechal Remi 2020-07-01 17:52:13 +02:00 committed by Rémi
parent 567515a5ce
commit ab773a56a4
13 changed files with 588 additions and 588 deletions

View File

@ -257,7 +257,7 @@ let measure_contract =
let%bind contract = Compile.Utils.compile_file source_file syntax entry_point in let%bind contract = Compile.Utils.compile_file source_file syntax entry_point in
ok @@ Tezos_utils.Michelson.measure contract in ok @@ Tezos_utils.Michelson.measure contract in
let format = Display.bind_format Formatter.contract_size_format Main.Formatter.error_format in let format = Display.bind_format Formatter.contract_size_format Main.Formatter.error_format in
toplevel ~display_format (Display.Displayable { value ; format }) (returned_value value) toplevel ~display_format (Display.Displayable { value ; format }) value
in in
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ syntax $ display_format) in
@ -436,7 +436,7 @@ let dump_changelog =
let f display_format = let f display_format =
let value = [%blob "../../CHANGELOG.md"] in let value = [%blob "../../CHANGELOG.md"] in
let format = Formatter.changelog_format in let format = Formatter.changelog_format in
toplevel ~display_format (Display.Displayable {value ; format}) (returned_value (ok ())) in toplevel ~display_format (Display.Displayable {value ; format}) (ok value) in
let term = let term =
Term.(const f $ display_format) in Term.(const f $ display_format) in
let cmdname = "changelog" in let cmdname = "changelog" in

View File

@ -1,23 +1,24 @@
open Cmdliner open Cmdliner
open Main.Display open Main.Display
let returned_value : (_,_) result -> unit -> unit Term.ret = let return_good v = `Ok v
fun v () -> match v with let return_bad v = `Error (false, Format.asprintf "@[<hv>error@ %s@]" v)
| Ok _ -> `Ok ()
| Error _ -> `Error (false, "error")
let toplevel : display_format:ex_display_format -> displayable -> (unit -> unit Term.ret) -> unit Term.ret = let toplevel : display_format:ex_display_format -> displayable -> ('value, Main_errors.Types.all) result -> unit Term.ret =
fun ~display_format disp return -> fun ~display_format disp value ->
let (Ex_display_format t) = display_format in let (Ex_display_format t) = display_format in
let as_str : string = let as_str : string =
match t with match t with
| Human_readable -> convert ~display_format:t disp ; | Human_readable -> convert ~display_format:t disp ;
| Dev -> convert ~display_format:t disp ; | Dev -> convert ~display_format:t disp ;
| Json -> Yojson.to_string @@ convert ~display_format:t disp in | Json -> Yojson.to_string @@ convert ~display_format:t disp
Format.printf "%s\n" as_str ; in
return () match value with
| Ok _ -> return_good @@
Format.fprintf Format.std_formatter "%s\n" as_str
| Error _ -> return_bad as_str
let return_result : display_format:ex_display_format -> 'value format -> ('value, Main_errors.Types.all) result -> unit Term.ret = let return_result : display_format:ex_display_format -> 'value format -> ('value, Main_errors.Types.all) result -> unit Term.ret =
fun ~display_format value_format value -> fun ~display_format value_format value ->
let format = Display.bind_format value_format Main.Formatter.error_format in let format = bind_format value_format Main.Formatter.error_format in
toplevel ~display_format (Display.Displayable {value ; format}) (returned_value value) toplevel ~display_format (Displayable {value ; format}) value

View File

@ -1,6 +1,5 @@
open Cmdliner open Cmdliner
open Display open Display
val toplevel : display_format:ex_display_format -> displayable -> (unit -> unit Term.ret) -> unit Term.ret val toplevel : display_format:ex_display_format -> displayable -> ('value, Main_errors.Types.all) result -> unit Term.ret
val returned_value : (_,_) Trace.result -> unit -> unit Term.ret
val return_result : display_format:ex_display_format -> 'value format -> ('value, Main_errors.Types.all) result -> unit Term.ret val return_result : display_format:ex_display_format -> 'value format -> ('value, Main_errors.Types.all) result -> unit Term.ret

View File

@ -9,41 +9,41 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_insertion_1.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_insertion_1.ligo" ; "main" ] ;
[%expect{| [%expect{|
ligo: error ligo: error
generated Michelson contract failed to typecheck : bad contract type generated Michelson contract failed to typecheck : bad contract type
code: code:
{ parameter nat ; { parameter nat ;
storage nat ; storage nat ;
code { DUP ; code { DUP ;
LAMBDA (pair nat nat) nat ADD ; LAMBDA (pair nat nat) nat ADD ;
SWAP ; SWAP ;
EXEC ; EXEC ;
NIL operation ; NIL operation ;
PAIR ; PAIR ;
DIP { DROP } } } DIP { DROP } } }
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_insertion_2.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_insertion_2.ligo" ; "main" ] ;
[%expect{| [%expect{|
ligo: error ligo: error
in file "bad_michelson_insertion_2.ligo", line 3, characters 9-13 in file "bad_michelson_insertion_2.ligo", line 3, characters 9-13
Constant declaration 'main' Constant declaration 'main'
Bad types: expected nat got ( nat * nat ) Bad types: expected nat got ( nat * nat )
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "compile-contract" ; bad_contract "bad_michelson_insertion_3.ligo" ; "main" ] ; run_ligo_good [ "compile-contract" ; bad_contract "bad_michelson_insertion_3.ligo" ; "main" ] ;

View File

@ -30,34 +30,34 @@ let%expect_test _ =
run_ligo_bad [ "compile-storage" ; contract "coase.ligo" ; "main" ; "Buy_single (record card_to_buy = 1n end)" ] ; run_ligo_bad [ "compile-storage" ; contract "coase.ligo" ; "main" ; "Buy_single (record card_to_buy = 1n end)" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Provided storage type does not match contract storage type Provided storage type does not match contract storage type
Bad types: Bad types:
expected record[card_patterns -> (type_operator: Map (nat,record[coefficient -> mutez , quantity -> nat])) , cards -> (type_operator: Map (nat,record[card_owner -> address , card_pattern -> nat])) , next_id -> nat] expected record[card_patterns -> (type_operator: Map (nat,record[coefficient -> mutez , quantity -> nat])) , cards -> (type_operator: Map (nat,record[card_owner -> address , card_pattern -> nat])) , next_id -> nat]
got sum[Buy_single -> record[card_to_buy -> nat] , Sell_single -> record[card_to_sell -> nat] , Transfer_single -> record[card_to_transfer -> nat , destination -> address]] got sum[Buy_single -> record[card_to_buy -> nat] , Sell_single -> record[card_to_sell -> nat] , Transfer_single -> record[card_to_transfer -> nat , destination -> address]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "compile-parameter" ; contract "coase.ligo" ; "main" ; "record cards = (map end : cards) ; card_patterns = (map end : card_patterns) ; next_id = 3n ; end" ] ; run_ligo_bad [ "compile-parameter" ; contract "coase.ligo" ; "main" ; "record cards = (map end : cards) ; card_patterns = (map end : card_patterns) ; next_id = 3n ; end" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Provided parameter type does not match contract parameter type Provided parameter type does not match contract parameter type
Bad types: Bad types:
expected sum[Buy_single -> record[card_to_buy -> nat] , Sell_single -> record[card_to_sell -> nat] , Transfer_single -> record[card_to_transfer -> nat , destination -> address]] expected sum[Buy_single -> record[card_to_buy -> nat] , Sell_single -> record[card_to_sell -> nat] , Transfer_single -> record[card_to_transfer -> nat , destination -> address]]
got record[card_patterns -> (type_operator: Map (nat,record[coefficient -> mutez , quantity -> nat])) , cards -> (type_operator: Map (nat,record[card_owner -> address , card_pattern -> nat])) , next_id -> nat] got record[card_patterns -> (type_operator: Map (nat,record[coefficient -> mutez , quantity -> nat])) , cards -> (type_operator: Map (nat,record[card_owner -> address , card_pattern -> nat])) , next_id -> nat]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
() ()
@ -1328,46 +1328,46 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; contract "bad_type_operator.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; contract "bad_type_operator.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_type_operator.ligo", line 4, characters 16-29 in file "bad_type_operator.ligo", line 4, characters 16-29
unrecognized type operator (type_operator: Map (binding)) unrecognized type operator (type_operator: Map (binding))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; contract "bad_address_format.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; contract "bad_address_format.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_address_format.religo", line 2, characters 26-48 in file "bad_address_format.religo", line 2, characters 26-48
Badly formatted literal: @"KT1badaddr" Badly formatted literal: @"KT1badaddr"
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; contract "bad_timestamp.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; contract "bad_timestamp.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_timestamp.ligo", line 7, characters 30-44 in file "bad_timestamp.ligo", line 7, characters 30-44
Badly formatted timestamp 'badtimestamp' Badly formatted timestamp 'badtimestamp'
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "dry-run" ; contract "redeclaration.ligo" ; "main" ; "unit" ; "0" ] ; run_ligo_good [ "dry-run" ; contract "redeclaration.ligo" ; "main" ; "unit" ; "0" ] ;
@ -1396,15 +1396,15 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "self_in_lambda.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "self_in_lambda.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
SELF_ADDRESS is only allowed at top-level SELF_ADDRESS is only allowed at top-level
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "compile-storage" ; contract "big_map.ligo" ; "main" ; "(big_map1,unit)" ] ; run_ligo_good [ "compile-storage" ; contract "big_map.ligo" ; "main" ; "(big_map1,unit)" ] ;
@ -1422,17 +1422,17 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "long_sum_type_names.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "long_sum_type_names.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "long_sum_type_names.ligo", line 2, character 2 to line 4, character 18 in file "long_sum_type_names.ligo", line 2, character 2 to line 4, character 18
Too long constructor 'Incrementttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt' Too long constructor 'Incrementttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt'
names length are limited to 32 (tezos limitation) names length are limited to 32 (tezos limitation)
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "dry-run" ; contract "super-counter.mligo" ; "main" ; "test_param" ; "test_storage" ] ; run_ligo_good [ "dry-run" ; contract "super-counter.mligo" ; "main" ; "test_param" ; "test_storage" ] ;
@ -1443,67 +1443,67 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "redundant_constructors.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "redundant_constructors.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "redundant_constructors.mligo", line 7, character 2 to line 9, character 15 in file "redundant_constructors.mligo", line 7, character 2 to line 9, character 15
Redundant constructor: Redundant constructor:
Add Add
- Env:[] Type env:[union_a -> sum[Add -> int , Remove -> int] - Env:[] Type env:[union_a -> sum[Add -> int , Remove -> int]
bool -> sum[false -> unit , true -> unit]] bool -> sum[false -> unit , true -> unit]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_toplevel.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_toplevel.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "create_contract_toplevel.mligo", line 3, characters 4-8 in file "create_contract_toplevel.mligo", line 3, characters 0-3
Constant declaration 'main' Constant declaration 'main'
in file "create_contract_toplevel.mligo", line 4, character 35 to line 8, character 8 in file "create_contract_toplevel.mligo", line 4, character 35 to line 8, character 8
Free variable 'store' is not allowed in CREATE_CONTRACT lambda Free variable 'store' is not allowed in CREATE_CONTRACT lambda
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_var.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_var.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "create_contract_var.mligo", line 5, characters 4-8 in file "create_contract_var.mligo", line 5, characters 0-3
Constant declaration 'main' Constant declaration 'main'
in file "create_contract_var.mligo", line 6, character 35 to line 10, character 5 in file "create_contract_var.mligo", line 6, character 35 to line 10, character 5
Free variable 'a' is not allowed in CREATE_CONTRACT lambda Free variable 'a' is not allowed in CREATE_CONTRACT lambda
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_no_inline.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "create_contract_no_inline.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "create_contract_no_inline.mligo", line 3, characters 40-46 in file "create_contract_no_inline.mligo", line 3, characters 40-46
Unbound type variable 'return' Unbound type variable 'return'
- Env:[foo -> int] Type env:[bool -> sum[false -> unit , true -> unit]] - Env:[foo -> int] Type env:[bool -> sum[false -> unit , true -> unit]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_good [ "compile-contract" ; contract "create_contract.mligo" ; "main" ] ; run_ligo_good [ "compile-contract" ; contract "create_contract.mligo" ; "main" ] ;
[%expect {| [%expect {|
@ -1549,18 +1549,18 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "self_type_annotation.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "self_type_annotation.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "self_type_annotation.ligo", line 8, characters 41-64 in file "self_type_annotation.ligo", line 8, characters 41-64
Bad self type Bad self type
expected (type_operator: Contract (int)) expected (type_operator: Contract (int))
got (type_operator: Contract (nat)) got (type_operator: Contract (nat))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_good [ "compile-contract" ; contract "self_type_annotation.ligo" ; "main" ] ; run_ligo_good [ "compile-contract" ; contract "self_type_annotation.ligo" ; "main" ] ;
[%expect {| [%expect {|
@ -1579,49 +1579,49 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_contract.mligo", line 4, characters 0-3 in file "bad_contract.mligo", line 4, characters 0-3
Badly typed contract: Badly typed contract:
unexpected entrypoint type ( nat * int ) -> int unexpected entrypoint type ( nat * int ) -> int
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract2.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract2.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_contract2.mligo", line 5, characters 0-3 in file "bad_contract2.mligo", line 5, characters 0-3
Badly typed contract: Badly typed contract:
expected (type_operator: list(operation)) but got string expected (type_operator: list(operation)) but got string
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract3.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_contract3.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_contract3.mligo", line 5, characters 0-3 in file "bad_contract3.mligo", line 5, characters 0-3
Badly typed contract main: Badly typed contract main:
expected storage type as right member of a pair in the input and output, but got: expected storage type as right member of a pair in the input and output, but got:
- int in the input - int in the input
- string in the output - string in the output
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "compile-contract" ; contract "self_with_entrypoint.ligo" ; "main" ] ; run_ligo_good [ "compile-contract" ; contract "self_with_entrypoint.ligo" ; "main" ] ;
@ -1669,73 +1669,73 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "self_bad_entrypoint_format.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "self_bad_entrypoint_format.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "self_bad_entrypoint_format.ligo", line 8, characters 52-58 in file "self_bad_entrypoint_format.ligo", line 8, characters 52-58
Bad entrypoint format 'Toto' Bad entrypoint format 'Toto'
We expect '%bar' for entrypoint Bar and '%default' when no entrypoint used We expect '%bar' for entrypoint Bar and '%default' when no entrypoint used
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_1.religo"; "main"]; run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_1.religo"; "main"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "nested_bigmap_1.religo", line 1, characters 11-29 in file "nested_bigmap_1.religo", line 1, characters 11-29
It looks like you have nested a big map inside another big map, this is not supported It looks like you have nested a big map inside another big map, this is not supported
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_2.religo"; "main"]; run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_2.religo"; "main"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "nested_bigmap_2.religo", line 2, characters 29-50 in file "nested_bigmap_2.religo", line 2, characters 29-50
It looks like you have nested a big map inside another big map, this is not supported It looks like you have nested a big map inside another big map, this is not supported
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_3.religo"; "main"]; run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_3.religo"; "main"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "nested_bigmap_3.religo", line 1, characters 11-29 in file "nested_bigmap_3.religo", line 1, characters 11-29
It looks like you have nested a big map inside another big map, this is not supported It looks like you have nested a big map inside another big map, this is not supported
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_4.religo"; "main"]; run_ligo_bad ["compile-contract"; bad_contract "nested_bigmap_4.religo"; "main"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "nested_bigmap_4.religo", line 2, characters 39-60 in file "nested_bigmap_4.religo", line 2, characters 39-60
It looks like you have nested a big map inside another big map, this is not supported It looks like you have nested a big map inside another big map, this is not supported
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_good ["print-ast"; contract "letin.mligo"]; run_ligo_good ["print-ast"; contract "letin.mligo"];
[%expect {| [%expect {|

View File

@ -4,35 +4,35 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/gitlab_111.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/gitlab_111.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Parse error in file "gitlab_111.religo", line 2, characters 0-3 at "let", after "=": Parse error in file "gitlab_111.religo", line 2, characters 0-3 at "let", after "=":
This is an incorrect let binding. This is an incorrect let binding.
- -
Examples of correct let bindings: Examples of correct let bindings:
let a: int = 4; let a: int = 4;
let (a: int, b: int) = (1, 2); let (a: int, b: int) = (1, 2);
let func = (a: int, b: int) => a + b; let func = (a: int, b: int) => a + b;
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/missing_rpar.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/missing_rpar.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Parse error in file "missing_rpar.religo", line 5, characters 0-3 at "let", after "m": Parse error in file "missing_rpar.religo", line 5, characters 0-3 at "let", after "m":
Missing `)`. Missing `)`.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;

View File

@ -4,103 +4,103 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "broken_string.ligo", line 1, characters 18-19: Lexical error in file "broken_string.ligo", line 1, characters 18-19:
The string starting here is interrupted by a line break. The string starting here is interrupted by a line break.
Hint: Remove the break, close the string before or insert a backslash. Hint: Remove the break, close the string before or insert a backslash.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "broken_string.mligo", line 1, characters 8-9: Lexical error in file "broken_string.mligo", line 1, characters 8-9:
The string starting here is interrupted by a line break. The string starting here is interrupted by a line break.
Hint: Remove the break, close the string before or insert a backslash. Hint: Remove the break, close the string before or insert a backslash.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/broken_string.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "broken_string.religo", line 1, characters 8-9: Lexical error in file "broken_string.religo", line 1, characters 8-9:
The string starting here is interrupted by a line break. The string starting here is interrupted by a line break.
Hint: Remove the break, close the string before or insert a backslash. Hint: Remove the break, close the string before or insert a backslash.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "negative_byte_sequence.ligo", line 1, characters 18-31: Lexical error in file "negative_byte_sequence.ligo", line 1, characters 18-31:
Negative byte sequence. Negative byte sequence.
Hint: Remove the leading minus sign. Hint: Remove the leading minus sign.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "negative_byte_sequence.mligo", line 1, characters 8-21: Lexical error in file "negative_byte_sequence.mligo", line 1, characters 8-21:
Negative byte sequence. Negative byte sequence.
Hint: Remove the leading minus sign. Hint: Remove the leading minus sign.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/negative_byte_sequence.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "negative_byte_sequence.religo", line 1, characters 8-21: Lexical error in file "negative_byte_sequence.religo", line 1, characters 8-21:
Negative byte sequence. Negative byte sequence.
Hint: Remove the leading minus sign. Hint: Remove the leading minus sign.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
(* (*
@ -125,250 +125,250 @@ ligo: : Lexical error in file "reserved_name.ligo", line 1, characters 4-13:
run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "reserved_name.religo", line 1, characters 4-7: Lexical error in file "reserved_name.religo", line 1, characters 4-7:
Reserved name: "end". Reserved name: "end".
Hint: Change the name. Hint: Change the name.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/reserved_name.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "reserved_name.mligo", line 1, characters 4-10: Lexical error in file "reserved_name.mligo", line 1, characters 4-10:
Reserved name: "object". Reserved name: "object".
Hint: Change the name. Hint: Change the name.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "unexpected_character.ligo", line 1, characters 18-19: Lexical error in file "unexpected_character.ligo", line 1, characters 18-19:
Unexpected character '\239'. Unexpected character '\239'.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "unexpected_character.mligo", line 1, characters 8-9: Lexical error in file "unexpected_character.mligo", line 1, characters 8-9:
Unexpected character '\239'. Unexpected character '\239'.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/unexpected_character.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "unexpected_character.religo", line 1, characters 8-9: Lexical error in file "unexpected_character.religo", line 1, characters 8-9:
Unexpected character '\239'. Unexpected character '\239'.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/unterminated_comment.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/unterminated_comment.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Preprocessing error in file "../../test/lexer/unterminated_comment.mligo", line 1, characters 0-2: Preprocessing error in file "../../test/lexer/unterminated_comment.mligo", line 1, characters 0-2:
Unterminated comment. Unterminated comment.
Hint: Close with "*)". Hint: Close with "*)".
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_symbol.ligo", line 1, characters 17-20: Lexical error in file "invalid_symbol.ligo", line 1, characters 17-20:
Invalid symbol. Invalid symbol.
Hint: Check the LIGO syntax you use. Hint: Check the LIGO syntax you use.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_symbol.mligo", line 1, characters 10-13: Lexical error in file "invalid_symbol.mligo", line 1, characters 10-13:
Invalid symbol. Invalid symbol.
Hint: Check the LIGO syntax you use. Hint: Check the LIGO syntax you use.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_symbol.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_symbol.religo", line 1, characters 10-11: Lexical error in file "invalid_symbol.religo", line 1, characters 10-11:
Invalid symbol. Invalid symbol.
Hint: Check the LIGO syntax you use. Hint: Check the LIGO syntax you use.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "missing_break.ligo", line 1, characters 18-18: Lexical error in file "missing_break.ligo", line 1, characters 18-18:
Missing break. Missing break.
Hint: Insert some space. Hint: Insert some space.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "missing_break.mligo", line 1, characters 11-11: Lexical error in file "missing_break.mligo", line 1, characters 11-11:
Missing break. Missing break.
Hint: Insert some space. Hint: Insert some space.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/missing_break.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "missing_break.religo", line 1, characters 11-11: Lexical error in file "missing_break.religo", line 1, characters 11-11:
Missing break. Missing break.
Hint: Insert some space. Hint: Insert some space.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_character_in_string.ligo", line 1, characters 19-20: Lexical error in file "invalid_character_in_string.ligo", line 1, characters 19-20:
Invalid character in string. Invalid character in string.
Hint: Remove or replace the character. Hint: Remove or replace the character.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_character_in_string.mligo", line 1, characters 9-10: Lexical error in file "invalid_character_in_string.mligo", line 1, characters 9-10:
Invalid character in string. Invalid character in string.
Hint: Remove or replace the character. Hint: Remove or replace the character.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ]; |} ];
run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/lexer/invalid_character_in_string.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Lexical error in file "invalid_character_in_string.religo", line 1, characters 9-10: Lexical error in file "invalid_character_in_string.religo", line 1, characters 9-10:
Invalid character in string. Invalid character in string.
Hint: Remove or replace the character. Hint: Remove or replace the character.
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' * Check the changelog by running 'ligo changelog'
|} ] |} ]

View File

@ -8,16 +8,16 @@ let%expect_test _ =
run_ligo_bad ["interpret" ; "(\"thisisnotasignature\":signature)" ; "--syntax=pascaligo"] ; run_ligo_bad ["interpret" ; "(\"thisisnotasignature\":signature)" ; "--syntax=pascaligo"] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "", line 0, characters 0-33 in file "", line 0, characters 0-33
Badly formatted literal: Signature thisisnotasignature Badly formatted literal: Signature thisisnotasignature
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good ["interpret" ; "(\"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav\":key)" ; "--syntax=pascaligo"] ; run_ligo_good ["interpret" ; "(\"edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav\":key)" ; "--syntax=pascaligo"] ;
@ -27,13 +27,13 @@ let%expect_test _ =
run_ligo_bad ["interpret" ; "(\"thisisnotapublickey\":key)" ; "--syntax=pascaligo"] ; run_ligo_bad ["interpret" ; "(\"thisisnotapublickey\":key)" ; "--syntax=pascaligo"] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "", line 0, characters 0-27 in file "", line 0, characters 0-27
Badly formatted literal: key thisisnotapublickey Badly formatted literal: key thisisnotapublickey
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]

View File

@ -9,33 +9,33 @@ let%expect_test _ =
run_ligo_bad [ "interpret" ; "--init-file="^(bad_contract "michelson_converter_no_annotation.mligo") ; "l4"] ; run_ligo_bad [ "interpret" ; "--init-file="^(bad_contract "michelson_converter_no_annotation.mligo") ; "l4"] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "michelson_converter_no_annotation.mligo", line 4, characters 4-6 in file "michelson_converter_no_annotation.mligo", line 4, characters 9-39
Constant declaration 'l4' Constant declaration 'l4'
Can't retrieve type declaration order in the converted record, you need to annotate it Can't retrieve type declaration order in the converted record, you need to annotate it
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] ; * Check the changelog by running 'ligo changelog' |}] ;
run_ligo_bad [ "interpret" ; "--init-file="^(bad_contract "michelson_converter_short_record.mligo") ; "l1"] ; run_ligo_bad [ "interpret" ; "--init-file="^(bad_contract "michelson_converter_short_record.mligo") ; "l1"] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "michelson_converter_short_record.mligo", line 4, characters 4-6 in file "michelson_converter_short_record.mligo", line 4, characters 9-44
Constant declaration 'l1' Constant declaration 'l1'
in file "michelson_converter_short_record.mligo", line 1, characters 10-23 in file "michelson_converter_short_record.mligo", line 1, characters 10-23
Converted record must have at least two elements Converted record must have at least two elements
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "interpret" ; "--init-file="^(contract "michelson_converter_pair.mligo") ; "r3"] ; run_ligo_good [ "interpret" ; "--init-file="^(contract "michelson_converter_pair.mligo") ; "r3"] ;

View File

@ -30,18 +30,18 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_or.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; bad_contract "bad_michelson_or.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "bad_michelson_or.mligo", line 5, characters 4-8 in file "bad_michelson_or.mligo", line 5, characters 0-3
Constant declaration 'main' Constant declaration 'main'
in file "bad_michelson_or.mligo", line 6, characters 12-27 in file "bad_michelson_or.mligo", line 6, characters 12-27
michelson_or contructor M_right must be annotated with a sum type michelson_or contructor M_right must be annotated with a sum type
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_good [ "compile-contract" ; contract "michelson_or_tree_intermediary.ligo" ; "main" ] ; run_ligo_good [ "compile-contract" ; contract "michelson_or_tree_intermediary.ligo" ; "main" ] ;

View File

@ -4,34 +4,34 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_syntax.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_syntax.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
Parse error in file "error_syntax.ligo", line 1, characters 16-17 at "-", after "bar": Parse error in file "error_syntax.ligo", line 1, characters 16-17 at "-", after "bar":
16: <syntax error> 16: <syntax error>
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_arguments.religo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_arguments.religo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_function_arguments.religo", line 1, characters 14-27 in file "error_function_arguments.religo", line 1, characters 14-27
It looks like you are defining a function, however we do not It looks like you are defining a function, however we do not
understand the parameters declaration. understand the parameters declaration.
Examples of valid functions: Examples of valid functions:
let x = (a: string, b: int) : int => 3; let x = (a: string, b: int) : int => 3;
let tuple = ((a, b): (int, int)) => a + b; let tuple = ((a, b): (int, int)) => a + b;
let x = (a: string) : string => "Hello, " ++ a; let x = (a: string) : string => "Hello, " ++ a;
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;

View File

@ -4,211 +4,211 @@ let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_1.mligo"; "main"]; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_1.mligo"; "main"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_function_annotation_1.mligo", line 1, characters 4-8 in file "error_function_annotation_1.mligo", line 1, characters 0-3
Constant declaration 'main' Constant declaration 'main'
Bad types: expected int -> unit got int -> int Bad types: expected int -> unit got int -> int
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_2.mligo"; "f"]; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_2.mligo"; "f"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_function_annotation_2.mligo", line 1, characters 4-5 in file "error_function_annotation_2.mligo", line 1, characters 14-43
Constant declaration 'f' Constant declaration 'f'
Bad types: expected int got ( int * int ) -> int Bad types: expected int got ( int * int ) -> int
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_3.mligo"; "f"]; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_function_annotation_3.mligo"; "f"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_function_annotation_3.mligo", line 6, characters 4-8 in file "error_function_annotation_3.mligo", line 6, characters 0-3
Constant declaration 'main' Constant declaration 'main'
Bad types: Bad types:
expected ( int * sum[Add -> int , Sub -> int] ) -> ( (type_operator: list(operation)) * sum[Add -> int , Sub -> int] ) expected ( int * sum[Add -> int , Sub -> int] ) -> ( (type_operator: list(operation)) * sum[Add -> int , Sub -> int] )
got ( int * sum[Add -> int , Sub -> int] ) -> sum[Add -> int , Sub -> int] got ( int * sum[Add -> int , Sub -> int] ) -> sum[Add -> int , Sub -> int]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_no_tail_recursive_function.mligo"; "f"]; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_no_tail_recursive_function.mligo"; "f"];
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_no_tail_recursive_function.mligo", line 2, characters 14-21 in file "error_no_tail_recursive_function.mligo", line 2, characters 14-21
Recursion must be achieved through tail-calls only Recursion must be achieved through tail-calls only
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}]; * Check the changelog by running 'ligo changelog' |}];
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_type.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_type.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_type.ligo", line 3, characters 6-9 in file "error_type.ligo", line 3, characters 18-28
Constant declaration 'foo' Constant declaration 'foo'
Expected arguments with one of the following combinations of type: Expected arguments with one of the following combinations of type:
(nat , nat) or (int , int) or (mutez , mutez) or (nat , int) or (int , nat) or (timestamp , int) or (int , timestamp) (nat , nat) or (int , int) or (mutez , mutez) or (nat , int) or (int , nat) or (timestamp , int) or (int , timestamp)
but got int , string but got int , string
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_1.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_1.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_1.mligo", line 3, characters 4-7 in file "error_typer_1.mligo", line 3, characters 19-27
Constant declaration 'foo' Constant declaration 'foo'
Bad types: expected string got int Bad types: expected string got int
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_2.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_2.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_2.mligo", line 3, characters 4-7 in file "error_typer_2.mligo", line 3, characters 24-39
Constant declaration 'foo' Constant declaration 'foo'
Bad types: Bad types:
expected (type_operator: list(string)) expected (type_operator: list(string))
got (type_operator: option(int)) got (type_operator: option(int))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_3.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_3.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_3.mligo", line 3, characters 4-7 in file "error_typer_3.mligo", line 3, characters 34-53
Constant declaration 'foo' Constant declaration 'foo'
Bad types: Bad types:
expected ( int * string * sum[false -> unit , true -> unit] ) expected ( int * string * sum[false -> unit , true -> unit] )
got ( int * string ) got ( int * string )
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_4.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_4.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_4.mligo", line 4, characters 4-7 in file "error_typer_4.mligo", line 4, characters 17-56
Constant declaration 'foo' Constant declaration 'foo'
Bad types: Bad types:
expected record[a -> int , c -> sum[false -> unit , true -> unit] , d -> string] expected record[a -> int , c -> sum[false -> unit , true -> unit] , d -> string]
got record[a -> int , b -> string , c -> sum[false -> unit , true -> unit]] got record[a -> int , b -> string , c -> sum[false -> unit , true -> unit]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_5.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_5.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_5.mligo", line 1, characters 10-17 in file "error_typer_5.mligo", line 1, characters 10-17
Unbound type variable 'boolean' Unbound type variable 'boolean'
- Env:[] Type env:[bool -> sum[false -> unit , true -> unit]] - Env:[] Type env:[bool -> sum[false -> unit , true -> unit]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_6.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_6.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_6.mligo", line 1, characters 4-7 in file "error_typer_6.mligo", line 1, characters 30-64
Constant declaration 'foo' Constant declaration 'foo'
Bad types: Bad types:
expected (type_operator: Map (int,string)) expected (type_operator: Map (int,string))
got (type_operator: Map (int,sum[false -> unit , true -> unit])) got (type_operator: Map (int,sum[false -> unit , true -> unit]))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_7.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/error_typer_7.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "error_typer_7.mligo", line 4, characters 4-7 in file "error_typer_7.mligo", line 4, characters 17-56
Constant declaration 'foo' Constant declaration 'foo'
Bad types: Bad types:
expected record[a -> int , b -> string] expected record[a -> int , b -> string]
got record[a -> int , b -> string , c -> sum[false -> unit , true -> unit]] got record[a -> int , b -> string , c -> sum[false -> unit , true -> unit]]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |} ] ; * Check the changelog by running 'ligo changelog' |} ] ;
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/id.mligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/id.mligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "id.mligo", line 28, characters 4-7 in file "id.mligo", line 28, characters 0-3
Constant declaration 'buy' Constant declaration 'buy'
in file "id.mligo", line 3, character 18 to line 7, character 1 in file "id.mligo", line 3, character 18 to line 7, character 1
Expected an option but got record[controller -> address , owner -> address , profile -> bytes] Expected an option but got record[controller -> address , owner -> address , profile -> bytes]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
(* (*
This test is here to ensure compatibility with comparable pairs introduced in carthage This test is here to ensure compatibility with comparable pairs introduced in carthage
@ -222,48 +222,48 @@ let%expect_test _ =
run_ligo_bad [ "interpret" ; "Set.literal [ (1,2,3) ; (2,3,4) ]" ; "--syntax=cameligo" ] ; run_ligo_bad [ "interpret" ; "Set.literal [ (1,2,3) ; (2,3,4) ]" ; "--syntax=cameligo" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
pair does not have a comparable structure. (hint: use (a,(b,c)) instead of (a,b,c)) pair does not have a comparable structure. (hint: use (a,(b,c)) instead of (a,b,c))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/failwith_wrong_type.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/failwith_wrong_type.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "failwith_wrong_type.ligo", line 2, characters 6-9 in file "failwith_wrong_type.ligo", line 2, characters 19-46
Constant declaration 'bad' Constant declaration 'bad'
Expected arguments with one of the following combinations of type: Expected arguments with one of the following combinations of type:
(string) or (nat) or (int) (string) or (nat) or (int)
but got (type_operator: list(int)) but got (type_operator: list(int))
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]
let%expect_test _ = let%expect_test _ =
run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/compare_sum_types.ligo" ; "main" ] ; run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/compare_sum_types.ligo" ; "main" ] ;
[%expect {| [%expect {|
ligo: error ligo: error
in file "compare_sum_types.ligo", line 3, characters 9-13 in file "compare_sum_types.ligo", line 3, characters 9-13
Constant declaration 'main' Constant declaration 'main'
Those two types are not comparable: Those two types are not comparable:
- sum[Bar -> unit , Foo -> unit] - sum[Bar -> unit , Foo -> unit]
- sum[Bar -> unit , Foo -> unit] - sum[Bar -> unit , Foo -> unit]
If you're not sure how to fix this error, you can do one of the following: If you're not sure how to fix this error, you can do one of the following:
* Visit our documentation: https://ligolang.org/docs/intro/introduction * Visit our documentation: https://ligolang.org/docs/intro/introduction
* Ask a question on our Discord: https://discord.gg/9rhYaEt * Ask a question on our Discord: https://discord.gg/9rhYaEt
* Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new
* Check the changelog by running 'ligo changelog' |}] * Check the changelog by running 'ligo changelog' |}]

View File

@ -257,10 +257,10 @@ let rec error_ppformat : display_format:string display_format ->
Format.fprintf f Format.fprintf f
"%a" "%a"
(error_ppformat ~display_format) err (error_ppformat ~display_format) err
| `Typer_constant_declaration_tracer (name,_ae,_,err) -> | `Typer_constant_declaration_tracer (name,ae,_,err) ->
Format.fprintf f Format.fprintf f
"@[<hv>%a@ Constant declaration '%a'@ %a@]" "@[<hv>%a@ Constant declaration '%a'@ %a@]"
Location.pp name.location Location.pp ae.location
Ast_core.PP.expression_variable name Ast_core.PP.expression_variable name
(error_ppformat ~display_format) err (error_ppformat ~display_format) err
| `Typer_match_error (expected,actual,loc) -> | `Typer_match_error (expected,actual,loc) ->