Add typechecking and better errors for sapling
Clarification and motivation
There is no support for the sapling
feature introduced in the edo
protocol in morley
, see the dedicated #380 (closed) issue and the discussion on the reason for this there as well as the summary on Slack for context.
Parsing and typechecking sapling's types and instructions in Michelson is possible, but this wasn't done as it would have been a very limited support compared to the usual one we have.
However this turned out to cause poor user experience, particularly because parsing a contract with sapling types will result in an error that's very unclear (it will say that s
was unexpected right now).
We want to revert that and:
- add the ability to parse these
- add typechecking and scope constraints
- fail (with a better error message) during interpretation at runtime
- do not add any other support (e.g. in
lorentz
)
IOW, do what was concluded but avoided last time .
Acceptance criteria
- contracts with sapling types and instructions are correctly parsed and typechecked
- any other action will involving them produces an error explaining why support is limited
Edited by Pinto Pasquale