@@ -15,6 +15,8 @@ type mapper = {
1515 provide: (mapper , list (provide_item )) => list (provide_item ),
1616 value_binding: (mapper , value_binding ) => value_binding ,
1717 match_branch: (mapper , match_branch ) => match_branch ,
18+ primitive_description:
19+ (mapper , primitive_description ) => primitive_description ,
1820 value_description: (mapper , value_description ) => value_description ,
1921 grain_exception: (mapper , type_exception ) => type_exception ,
2022 toplevel: (mapper , toplevel_stmt ) => toplevel_stmt ,
@@ -390,6 +392,15 @@ module Pr = {
390392 };
391393};
392394
395+ module PD = {
396+ let map = (sub, {pprim_ident: ident, pprim_name: name, pprim_loc: loc}) => {
397+ let pprim_loc = sub. location(sub, loc);
398+ let pprim_ident = map_loc(sub, ident);
399+ let pprim_name = map_loc(sub, name);
400+ {pprim_ident, pprim_name, pprim_loc};
401+ };
402+ };
403+
393404module VD = {
394405 let map = (sub, {pval_mod: vmod, pval_name: vname, pval_loc: loc} as d) => {
395406 let pval_loc = sub. location(sub, loc);
@@ -415,7 +426,12 @@ module TL = {
415426 | PTopForeign (e , d ) =>
416427 Toplevel . foreign(~loc, ~attributes, e, sub. value_description(sub, d))
417428 | PTopPrimitive (e , d ) =>
418- Toplevel . primitive(~loc, ~attributes, e, sub. value_description(sub, d))
429+ Toplevel . primitive(
430+ ~loc,
431+ ~attributes,
432+ e,
433+ sub. primitive_description(sub, d),
434+ )
419435 | PTopData (dd ) =>
420436 Toplevel . data(
421437 ~loc,
@@ -465,6 +481,7 @@ let default_mapper = {
465481 provide: Pr . map,
466482 value_binding: V . map,
467483 match_branch: MB . map,
484+ primitive_description: PD . map,
468485 value_description: VD . map,
469486 grain_exception: Exc . map,
470487 toplevel: TL . map,
0 commit comments