summaryrefslogtreecommitdiff
path: root/bytecomp/lambda.mli
diff options
context:
space:
mode:
Diffstat (limited to 'bytecomp/lambda.mli')
-rw-r--r--bytecomp/lambda.mli15
1 files changed, 13 insertions, 2 deletions
diff --git a/bytecomp/lambda.mli b/bytecomp/lambda.mli
index 6748fefe1a..8acb4cd03e 100644
--- a/bytecomp/lambda.mli
+++ b/bytecomp/lambda.mli
@@ -21,11 +21,19 @@ type compile_time_constant =
| Ostype_win32
| Ostype_cygwin
+type loc_kind =
+ | Loc_FILE
+ | Loc_LINE
+ | Loc_MODULE
+ | Loc_LOC
+ | Loc_POS
+
type primitive =
Pidentity
| Pignore
| Prevapply of Location.t
| Pdirapply of Location.t
+ | Ploc of loc_kind
(* Globals *)
| Pgetglobal of Ident.t
| Psetglobal of Ident.t
@@ -177,7 +185,7 @@ type lambda =
| Lswitch of lambda * lambda_switch
(* switch on strings, clauses are sorted by string order,
strings are pairwise distinct *)
- | Lstringswitch of lambda * (string * lambda) list * lambda
+ | Lstringswitch of lambda * (string * lambda) list * lambda option
| Lstaticraise of int * lambda list
| Lstaticcatch of lambda * (int * Ident.t list) * lambda
| Ltrywith of lambda * Ident.t * lambda
@@ -207,7 +215,9 @@ and lambda_event_kind =
| Lev_after of Types.type_expr
| Lev_function
-val same: lambda -> lambda -> bool
+(* Sharing key *)
+val make_key: lambda -> lambda option
+
val const_unit: structured_constant
val lambda_unit: lambda
val name_lambda: let_kind -> lambda -> (Ident.t -> lambda) -> lambda
@@ -243,3 +253,4 @@ val is_guarded: lambda -> bool
val patch_guarded : lambda -> lambda -> lambda
val raise_kind: raise_kind -> string
+val lam_of_loc : loc_kind -> Location.t -> lambda