diff options
author | Takafumi Saikawa <tscompor@gmail.com> | 2022-08-29 15:17:50 +0900 |
---|---|---|
committer | Takafumi Saikawa <tscompor@gmail.com> | 2022-12-27 17:06:56 +0900 |
commit | 5c940ca42fb28b9f9bb2af9747a9230baa5772e3 (patch) | |
tree | 2a50b18dd66db2bdf92250b252418683be8aeb7c /debugger | |
parent | 0f5b57f7935d4de193f1267441d0f2fc17037225 (diff) | |
download | ocaml-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.ml | 15 |
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 |