aboutsummaryrefslogtreecommitdiff
path: root/lib/syntax/check.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/syntax/check.ml')
-rw-r--r--lib/syntax/check.ml23
1 files changed, 6 insertions, 17 deletions
diff --git a/lib/syntax/check.ml b/lib/syntax/check.ml
index c5dfe74..6737e80 100644
--- a/lib/syntax/check.ml
+++ b/lib/syntax/check.ml
@@ -124,13 +124,12 @@ module Make (A : App) = struct
Array.mapi A.t ~f:(fun i (E { module_ = (module S); expr_witness; _ }) ->
(* Map every values to the Checker *)
let values' =
- List.map values ~f:(function
- | T.Text t -> T.Text t
- | T.Expression e ->
- let exprs =
- List.rev (Helper.expr_i e expr_witness i).values
- in
- T.Expression exprs)
+ List.map values
+ ~f:
+ (T.map_litteral ~f:(fun expr ->
+ match get expr_witness (Array.get expr i) with
+ | None -> failwith "Does not match"
+ | Some value -> value))
in
let value = S.Expression.literal pos values' in
R { value; witness = expr_witness })
@@ -320,15 +319,6 @@ module Make (A : App) = struct
R { value; witness = instr_witness })
- (** Helper function used to prepare the clauses *)
- let map_clause : (expression, t) S.clause -> S.pos * Expression.t' * t list
- =
- fun clause ->
- let clause_pos, expression, t = clause in
- let expression = expression in
- let clause = (clause_pos, expression, t) in
- clause
-
let rebuild_clause :
type a b.
int ->
@@ -354,7 +344,6 @@ module Make (A : App) = struct
t =
fun pos clause ~elifs ~else_ ->
(* First, apply the report for all the instructions *)
- let clause = map_clause clause and elifs = List.map elifs ~f:map_clause in
let else_ =
match else_ with
| None -> None