package ppx_quick_test

  1. Overview
  2. Docs

Source file quick_test_header_footer.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
29
30
31
32
33
open! Core
open! Ppxlib

let expand_impl_header loc =
  let loc = { loc with loc_end = loc.loc_start } in
  let open (val Ast_builder.make loc) in
  let open Merlin_helpers in
  let filename_expr =
    estring (Ppx_here_expander.expand_filename loc.loc_start.pos_fname)
  in
  let create_file_corrections_expr =
    [%expr
      Ppx_quick_test_runtime_lib.File_corrections.create ~filename:[%e filename_expr]]
  in
  [%str let () = [%e hide_expression create_file_corrections_expr]]
;;

let expand_impl_footer loc =
  let loc = { loc with loc_start = loc.loc_end } in
  let open (val Ast_builder.make loc) in
  let open Merlin_helpers in
  let filename_expr =
    estring (Ppx_here_expander.expand_filename loc.loc_start.pos_fname)
  in
  let make_corrected_file_function_expression =
    [%expr
      Ppx_quick_test_runtime_lib.File_corrections.make_corrected_file
        ~filename:[%e filename_expr]]
  in
  [%str let () = [%e hide_expression make_corrected_file_function_expression]]
;;

let expand_enclose_impl loc = expand_impl_header loc, expand_impl_footer loc
OCaml

Innovation. Community. Security.