[#439] Carry annotations for typed LEFT and RIGHT
Description
The special filed annotations are not presented for LEFT and RIGHT instructions. However we support them for PAIR.
Under the assumption that carrying annotations for PAIR should be similar to carrying them for LEFT and RIGHT, the changes similar to "PAIR changes" were made. The main idea is that we add pattern LEFT to Michelson.Typed.Instr and change LEFT constructor to AnnLEFT that has two additional fields - TypeAnn and FieldAnn. It looks like LEFT :type %@ in Michelson (%@ takes the variable name from the stack to make it the left field name). After that all related usages of LEFT are being rewritten.
Related issue(s)
Resolves #439 (closed)
✅ Checklist for your Merge Request
Related changes (conditional)
-
Tests (see short guidelines)
-
If I added new functionality, I added tests covering it. -
If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
-
-
Documentation
Stylistic guide (mandatory)
-
My commits comply with the following policy. -
My code complies with the style guide.
Edited by Alyona Antonova