summaryrefslogtreecommitdiff
path: root/compiler/SymbolicAst.ml
diff options
context:
space:
mode:
authorSon Ho2023-08-03 16:21:43 +0200
committerSon Ho2023-08-03 16:21:43 +0200
commit931fabe3e8590815548d606b33fc8db31e9f6010 (patch)
treeba99ca0412c8e08cd8e89edbbd287c3b306ebfd8 /compiler/SymbolicAst.ml
parentfa682c18c8ffc5fa7224d9e9d0e0dd94250ada57 (diff)
Fix an issue with the extraction of aggregated arrays
Diffstat (limited to 'compiler/SymbolicAst.ml')
-rw-r--r--compiler/SymbolicAst.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/SymbolicAst.ml b/compiler/SymbolicAst.ml
index 787fefc7..7dc94dcd 100644
--- a/compiler/SymbolicAst.ml
+++ b/compiler/SymbolicAst.ml
@@ -167,7 +167,7 @@ type expression =
Contexts.eval_ctx
* mplace option
* V.symbolic_value
- * V.typed_value
+ * value_aggregate
* expression
(** We introduce a new symbolic value, equal to some other value.
@@ -246,6 +246,13 @@ and expansion =
T.integer_type * (V.scalar_value * expression) list * expression
(** An integer expansion (i.e, a switch over an integer). The last
expression is for the "otherwise" branch. *)
+
+(* Remark: this type doesn't have to be mutually recursive with the other
+ types, but it makes it easy to generate the visitors *)
+and value_aggregate =
+ | SingleValue of V.typed_value (** Regular case *)
+ | Array of V.typed_value list
+ (** This is used when introducing array aggregates *)
[@@deriving
show,
visitors