Source file encoding_503.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
module Ext_name = struct
let ppat_effect = "ppxlib.migration.ppat_effect_503"
end
let invalid_encoding ~loc name =
Location.raise_errorf ~loc "Invalid %s encoding" name
module To_502 = struct
let encode_ppat_effect ~loc ~effect_ ~k =
let open Ast_502.Parsetree in
Ppat_extension
( Location.{ txt = Ext_name.ppat_effect; loc },
PPat
( {
ppat_desc = Ppat_tuple [ effect_; k ];
ppat_attributes = [];
ppat_loc_stack = [];
ppat_loc = loc;
},
None ) )
let decode_ppat_effect ~loc payload =
let open Ast_502.Parsetree in
match payload with
| PPat ({ ppat_desc = Ppat_tuple [ effect_; cont ]; _ }, None) ->
(effect_, cont)
| _ -> invalid_encoding ~loc Ext_name.ppat_effect
end