@@ -154,8 +154,8 @@ module Analysis = struct
154
154
155
155
and value_binding env vb = pattern env vb.vb_pat @ expression env vb.vb_expr
156
156
157
- and expression env = function
158
- | { exp_desc = Texp_ident (p , _ , value_description ); exp_loc; _ } -> (
157
+ and expression env { exp_desc; exp_loc; _ } = match exp_desc with
158
+ | Texp_ident (p , _ , value_description ) -> (
159
159
if exp_loc.loc_ghost then []
160
160
else
161
161
(* Only generate anchor if the uid is in the location table. We don't
@@ -169,16 +169,16 @@ module Analysis = struct
169
169
match p with
170
170
| Pident id -> [ (LocalValue id, pos_of_loc exp_loc) ]
171
171
| _ -> [] ))
172
- | { exp_desc = Texp_constant _ ; _ } -> []
173
- | { exp_desc = Texp_let (_ , vbs , e ); _ } ->
172
+ | Texp_constant _ -> []
173
+ | Texp_let (_ , vbs , e ) ->
174
174
List. concat_map (value_binding env) vbs @ expression env e
175
- | { exp_desc = Texp_function f ; _ } -> List. concat_map (case env) f.cases
176
- | { exp_desc = Texp_match (e , cases , _ ); _ } ->
175
+ | Texp_function f -> List. concat_map (case env) f.cases
176
+ | Texp_match (e , cases , _ ) ->
177
177
expression env e @ List. concat_map (case env) cases
178
- | { exp_desc = Texp_try (e , cases ); _ } ->
178
+ | Texp_try (e , cases ) ->
179
179
expression env e @ List. concat_map (case env) cases
180
- | { exp_desc = Texp_tuple es ; _ } -> List. concat_map (expression env) es
181
- | { exp_desc = Texp_construct (_ , cons_description , es ); exp_loc; _ } ->
180
+ | Texp_tuple es -> List. concat_map (expression env) es
181
+ | Texp_construct (_ , cons_description , es ) ->
182
182
let x =
183
183
if exp_loc.loc_ghost then []
184
184
else
@@ -191,50 +191,50 @@ module Analysis = struct
191
191
| None -> []
192
192
in
193
193
x @ List. concat_map (expression env) es
194
- | { exp_desc = Texp_variant (_ , Some e ); _ } -> expression env e
195
- | { exp_desc = Texp_variant (_ , None); _ } -> []
196
- | { exp_desc = Texp_record { fields; extended_expression; _ } ; _ } ->
194
+ | Texp_variant (_ , Some e ) -> expression env e
195
+ | Texp_variant (_ , None) -> []
196
+ | Texp_record { fields; extended_expression; _ } ->
197
197
let e =
198
198
match extended_expression with
199
199
| None -> []
200
200
| Some expr -> expression env expr
201
201
in
202
202
e @ List. concat_map (record_fields env) (Array. to_list fields)
203
- | { exp_desc = Texp_field (e , _ , _ ); _ } -> expression env e
204
- | { exp_desc = Texp_setfield (e1 , _ , _ , e2 ); _ } ->
203
+ | Texp_field (e , _ , _ ) -> expression env e
204
+ | Texp_setfield (e1 , _ , _ , e2 ) ->
205
205
expression env e1 @ expression env e2
206
- | { exp_desc = Texp_array es ; _ } -> List. concat_map (expression env) es
207
- | { exp_desc = Texp_ifthenelse (e1 , e2 , e3 ); _ } ->
206
+ | Texp_array es -> List. concat_map (expression env) es
207
+ | Texp_ifthenelse (e1 , e2 , e3 ) ->
208
208
let e3 = match e3 with Some e -> expression env e | None -> [] in
209
209
e3 @ expression env e1 @ expression env e2
210
- | { exp_desc = Texp_sequence (e1 , e2 ); _ } ->
210
+ | Texp_sequence (e1 , e2 ) ->
211
211
expression env e1 @ expression env e2
212
- | { exp_desc = Texp_while (e1 , e2 ); _ } ->
212
+ | Texp_while (e1 , e2 ) ->
213
213
expression env e1 @ expression env e2
214
- | { exp_desc = Texp_for (id , p , e1 , e2 , _ , e3 ); _ } ->
214
+ | Texp_for (id , p , e1 , e2 , _ , e3 ) ->
215
215
((LocalValue id, pos_of_loc p.ppat_loc) :: expression env e1)
216
216
@ expression env e2 @ expression env e3
217
- | { exp_desc = Texp_send (e , _ ); _ } -> expression env e
218
- | { exp_desc = Texp_new _ ; _ } -> []
219
- | { exp_desc = Texp_instvar (_ , _ , _ ); _ } -> []
220
- | { exp_desc = Texp_setinstvar (_ , _ , _ , e ); _ } -> expression env e
221
- | { exp_desc = Texp_override (_ , es ); _ } ->
217
+ | Texp_send (e , _ ) -> expression env e
218
+ | Texp_new _ -> []
219
+ | Texp_instvar (_ , _ , _ ) -> []
220
+ | Texp_setinstvar (_ , _ , _ , e ) -> expression env e
221
+ | Texp_override (_ , es ) ->
222
222
List. concat_map (fun (_ , _ , e ) -> expression env e) es
223
- | { exp_desc = Texp_letmodule (_ , _ , _ , _m , e ); _ } -> expression env e
224
- | { exp_desc = Texp_letexception (_ , e ); _ } -> expression env e
225
- | { exp_desc = Texp_assert e ; _ } -> expression env e
226
- | { exp_desc = Texp_lazy e ; _ } -> expression env e
227
- | { exp_desc = Texp_object (_ , _ ); _ } -> []
228
- | { exp_desc = Texp_pack _ ; _ } -> []
229
- | { exp_desc = Texp_letop { let_; ands; body; _ } ; _ } ->
223
+ | Texp_letmodule (_ , _ , _ , _m , e ) -> expression env e
224
+ | Texp_letexception (_ , e ) -> expression env e
225
+ | Texp_assert e -> expression env e
226
+ | Texp_lazy e -> expression env e
227
+ | Texp_object (_ , _ ) -> []
228
+ | Texp_pack _ -> []
229
+ | Texp_letop { let_; ands; body; _ } ->
230
230
let e = case env body in
231
231
let let_ = binding_op env let_ in
232
232
let ands = List. concat_map (binding_op env) ands in
233
233
e @ let_ @ ands
234
- | { exp_desc = Texp_unreachable ; _ } -> []
235
- | { exp_desc = Texp_extension_constructor _ ; _ } -> []
236
- | { exp_desc = Texp_open (_ , e ); _ } -> expression env e
237
- | { exp_desc = Texp_apply (e , es ); _ } ->
234
+ | Texp_unreachable -> []
235
+ | Texp_extension_constructor _ -> []
236
+ | Texp_open (_ , e ) -> expression env e
237
+ | Texp_apply (e , es ) ->
238
238
expression env e
239
239
@ List. concat_map
240
240
(function _ , Some e -> expression env e | _ -> [] )
0 commit comments