summaryrefslogtreecommitdiff
path: root/debugger
diff options
context:
space:
mode:
authorTakafumi Saikawa <tscompor@gmail.com>2022-08-29 15:17:50 +0900
committerTakafumi Saikawa <tscompor@gmail.com>2022-12-27 17:06:56 +0900
commit5c940ca42fb28b9f9bb2af9747a9230baa5772e3 (patch)
tree2a50b18dd66db2bdf92250b252418683be8aeb7c /debugger
parent0f5b57f7935d4de193f1267441d0f2fc17037225 (diff)
downloadocaml-5c940ca42fb28b9f9bb2af9747a9230baa5772e3.tar.gz
Introduce wrapper functions for level management ([Ctype.wrap_def], etc)
and for type variable scoping ([Typetexp.wrap_type_variable_scope]). The older API ([Ctype.(begin_def,end_def)], [Typetexp.(narrow,widen)], etc.) is now removed. The scope of some level management is refined (in particular for [type_application]).
Diffstat (limited to 'debugger')
-rw-r--r--debugger/loadprinter.ml15
1 files changed, 7 insertions, 8 deletions
diff --git a/debugger/loadprinter.ml b/debugger/loadprinter.ml
index 5009623a89..ff2eed190b 100644
--- a/debugger/loadprinter.ml
+++ b/debugger/loadprinter.ml
@@ -90,14 +90,13 @@ let eval_value_path env path =
(* Install, remove a printer (as in toplevel/topdirs) *)
let match_printer_type desc make_printer_type =
- Ctype.begin_def();
- let ty_arg = Ctype.newvar() in
- Ctype.unify Env.empty
- (make_printer_type ty_arg)
- (Ctype.instance desc.val_type);
- Ctype.end_def();
- Ctype.generalize ty_arg;
- ty_arg
+ Ctype.wrap_def ~post:Ctype.generalize begin fun () ->
+ let ty_arg = Ctype.newvar() in
+ Ctype.unify Env.empty
+ (make_printer_type ty_arg)
+ (Ctype.instance desc.val_type);
+ ty_arg
+ end
let find_printer_type lid =
match Env.find_value_by_name lid Env.empty with