[go: up one dir, main page]

Ignore all annotations but entrypoints

Copied from the archived Metastate repo: metastatedev/tezos#113.

Annotations bring a complexity to the parser and the typechecker as well as unsatisfactory properties such as non-transitivity of type equality. They are useful when programming and debugging Michelson programs, but don't bring many strong guarantees, and aren't necessary once checked. Now that we have high-level languages targeting Michelson, annotations don't seem very useful to keep in the language.

Shall we just remove them?

If yes, we'll have to have discussions on:

  • entrypoints
  • migration & backward-compatibility

Steps:

  1. Remove stack variable annotations: !4139 (merged)
  2. Remove pair variable annotations: !4140 (merged)
  3. Remove type annotations: !4141 (merged)
  4. Remove field annotations from comparable types and pairs: !4175 (merged)
  5. Remove field annotations from unions + refactor entrypoints:
  • Update documentation
  • Tests
  1. Simplify merge functions:
  2. Simplify checking annotations
Edited by Mehdi Bouaziz