diff options
Diffstat (limited to 'bytecomp/printlambda.ml')
-rw-r--r-- | bytecomp/printlambda.ml | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bytecomp/printlambda.ml b/bytecomp/printlambda.ml index 2ab20f872..07dd4b264 100644 --- a/bytecomp/printlambda.ml +++ b/bytecomp/printlambda.ml @@ -230,13 +230,19 @@ let rec lam ppf = function fprintf ppf "@[<hv 1>case tag %i:@ %a@]" n lam l) sw.sw_blocks in fprintf ppf - "@[<1>(%s%a@ @[<v 0>%a@])@]" - (if sw.sw_checked then "switch-checked " else "switch ") + "@[<1>(%s%s%a@ @[<v 0>%a@])@]" + (if sw.sw_checked then "switch-checked" else "switch") + (if sw.sw_nofail then "* " else " ") lam larg switch sw | Lstaticfail -> fprintf ppf "exit" + | Lstaticraise i -> + fprintf ppf "exit(%d)" i | Lcatch(lbody, lhandler) -> fprintf ppf "@[<2>(catch@ %a@;<1 -1>with@ %a)@]" lam lbody lam lhandler + | Lstaticcatch(lbody, i, lhandler) -> + fprintf ppf "@[<2>(catch@ %a@;<1 -1>with(%d)@ %a)@]" + lam lbody i lam lhandler | Ltrywith(lbody, param, lhandler) -> fprintf ppf "@[<2>(try@ %a@;<1 -1>with %a@ %a)@]" lam lbody Ident.print param lam lhandler |