Source file parsetree_utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
open Std

open Parsetree

type nonrec constant_desc = constant_desc

let constant_desc c = c.pconst_desc

let filter_merlin_attr =
  let default = Ast_mapper.default_mapper in
  let keep attr =
    let { Location.txt; _ }, _ = Ast_helper.Attr.as_tuple attr in
    not (Std.String.is_prefixed ~by:"merlin." txt)
  in
  let attributes mapper attrs =
    default.Ast_mapper.attributes mapper (List.filter ~f:keep attrs)
  in
  { default with Ast_mapper.attributes }

let expr_remove_merlin_attributes expr =
  filter_merlin_attr.Ast_mapper.expr filter_merlin_attr expr