File: test_zero_alloc.ml

package info (click to toggle)
janest-base 0.17.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,632 kB
  • sloc: ml: 48,653; ansic: 281; javascript: 126; makefile: 14
file content (20 lines) | stat: -rw-r--r-- 497 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let[@zero_alloc] [@inline never] foo x = Base.Printf.failwithf "%d" x ()
let[@zero_alloc] [@inline never] bar x y = Base.Printf.invalid_argf "%d" (x + y) ()

let%expect_test "foo" =
  let x = Sys.opaque_identity 5 in
  (try foo x with
   | Failure s ->
     print_string s;
     print_newline ());
  [%expect {| 5 |}]
;;

let%expect_test "bar" =
  let x = Sys.opaque_identity 5 in
  (try bar x x with
   | Invalid_argument s ->
     print_string s;
     print_newline ());
  [%expect {| 10 |}]
;;