Skip to content

Add an error for TWild instead of a raw Failure

This MR adds an error to replace the failure on TWild:

$ cat twild.mligo
let x : _ = 4
$ dune exec -- ligo print-mini-c twild.mligo
ligo: internal error, uncaught exception:
      (Failure "unsupported TWild")
      Raised at file "stdlib.ml", line 29, characters 17-33
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 344, characters 12-15
      Called from file "src/passes/04-tree_abstraction/cameligo/compiler.ml", line 636, characters 22-79
      Called from file "src/passes/04-tree_abstraction/cameligo/compiler.ml", line 763, characters 23-74
      Called from file "list.ml", line 92, characters 20-23
      Called from file "list.ml", line 92, characters 32-39
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 371, characters 36-52
      Called from file "src/passes/04-tree_abstraction/cameligo/compiler.ml", line 771, characters 19-75
      Called from file "src/main/compile/helpers.ml", line 105, characters 4-52
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "src/main/compile/helpers.ml", line 177, characters 4-39
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "src/main/compile/utils.ml", line 9, characters 24-64
      Called from file "src/main/compile/utils.ml", line 13, characters 24-69
      Called from file "src/main/compile/utils.ml", line 18, characters 20-60
      Called from file "src/main/build/build.ml", line 117, characters 22-80
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "src/main/build/build.ml", line 126, characters 48-128
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "list.ml", line 121, characters 24-34
      Called from file "src/main/build/build.ml", line 153, characters 26-110
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "src/main/build/build.ml", line 159, characters 28-83
      Called from file "src/bin/cli.ml", line 424, characters 26-76
      Called from file "vendors/ligo-utils/simple-utils/trace.ml", line 237, characters 11-14
      Called from file "src/bin/cli.ml", line 419, characters 6-580
      Called from file "cmdliner_term.ml", line 25, characters 19-24
      Called from file "cmdliner.ml", line 26, characters 27-34
      Called from file "cmdliner.ml", line 117, characters 32-39

With this MR ligo handles the error as follows:

$ dune exec -- ligo print-mini-c twild.mligo 
File "twild.mligo", line 1, characters 8-9:
  1 | let x : _ = 4

Invalid type. 
It's not possible to use _ in a type. 

Merge request reports

Loading