Keep `(context, expression)` in `Ast_aggregated` for test purging
type:internal
For LIGO developers
This MR comes from discussion with Rémi.
There's a new pass that does test purging (i.e. removing test related definitions), see !2010 (merged). However, this pass depends on the form of an aggregated contract in Ast_aggregated: a let a1 = ... in let a2 = ... in main.
This MR keeps context (sequence of defs. a1, a2, ...) separated from main expression until a later stage, giving Self_ast_aggregated access to the context + expression to some passes, which can profit from this presentation.
Changelog details:
Edited by E. Rivas