package ppxlib
Source file encoding_502.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 29module Ext_name = struct let ptyp_open = "ppxlib.migration.ptyp_open_502" end let invalid_encoding ~loc name = Error.invalid_encoding ~loc ~version:"5.2" name module To_501 = struct open Ast_501.Asttypes open Ast_501.Parsetree let encode_ptyp_open ~loc ((name, typ) : Longident.t Location.loc * core_type) : extension = let typ = Ptyp_constr (name, [ typ ]) in let ctyp = { ptyp_desc = typ; ptyp_loc = loc; ptyp_attributes = []; ptyp_loc_stack = []; } in let payload = PTyp ctyp in let ext = { txt = Ext_name.ptyp_open; loc } in (ext, payload) let decode_ptyp_open ~loc = function | PTyp { ptyp_desc = Ptyp_constr (name, [ typ ]); _ } -> (name, typ) | _ -> invalid_encoding ~loc Ext_name.ptyp_open end