[TM-87] Instructions should not get flattened
Description
Problem: a contract serialisation depends on its precise code. When we flatten instructions we lose information about an original version of the code.
Solution: remove flattening step and corresponding datatypes for AST representation. Where untyped Instr and Op were used, ExpandedOp is used now.
Related issue(s)
https://issues.serokell.io/issue/TM-87
✅ Checklist for your Merge Request
Related changes (conditional)
-
Tests
-
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 Ilya Peresadin