summaryrefslogtreecommitdiff
path: root/compiler/SymbolicAst.ml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--compiler/SymbolicAst.ml17
1 files changed, 8 insertions, 9 deletions
diff --git a/compiler/SymbolicAst.ml b/compiler/SymbolicAst.ml
index 8e8cdec3..7252a020 100644
--- a/compiler/SymbolicAst.ml
+++ b/compiler/SymbolicAst.ml
@@ -197,16 +197,16 @@ type expression =
The evaluation context is the context at the moment we introduce the
[ForwardEnd], and is used to translate the input values (see the
comments for the {!Return} variant).
+
+ This case also handles the case where we (re-)enter a loop (once
+ we enter a loop in symbolic mode, we don't get out: the loop is
+ responsible for the end of the function).
*)
| Loop of loop (** Loop *)
| ReturnWithLoop of loop_id * bool
- (** End the function with a call to a loop function.
-
- This encompasses the cases when we synthesize a function body
- and enter a loop for the first time, or when we synthesize a
- loop body and reach a [Continue].
-
- The boolean is [is_continue].
+ (** We reach a return while inside a loop.
+ The boolean is [true].
+ TODO: merge this with Return.
*)
| Meta of emeta * expression (** Meta information *)
@@ -215,8 +215,7 @@ and loop = {
input_svalues : symbolic_value list; (** The input symbolic values *)
fresh_svalues : symbolic_value_id_set;
(** The symbolic values introduced by the loop fixed-point *)
- rg_to_given_back_tys :
- ((RegionId.Set.t * ty list) RegionGroupId.Map.t[@opaque]);
+ rg_to_given_back_tys : (ty list RegionGroupId.Map.t[@opaque]);
(** The map from region group ids to the types of the values given back
by the corresponding loop abstractions.
*)