summaryrefslogtreecommitdiff
path: root/typing
diff options
context:
space:
mode:
authorJérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr>1997-03-18 21:06:28 +0000
committerJérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr>1997-03-18 21:06:28 +0000
commit58e8f3b8d0a8ab035c41d22d4d6734b1e2d4cc2c (patch)
treed46ec777d7b5dad0708260c2a21d08e8ff8657e2 /typing
parent6dc35f692dff60fa69a42157565c56ba2641030a (diff)
downloadocaml-58e8f3b8d0a8ab035c41d22d4d6734b1e2d4cc2c.tar.gz
Modification de Ctype.closed_schema
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1412 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'typing')
-rw-r--r--typing/typeclass.ml2
-rw-r--r--typing/typemod.ml13
2 files changed, 6 insertions, 9 deletions
diff --git a/typing/typeclass.ml b/typing/typeclass.ml
index 77597e3ec9..fdd2ca6fe1 100644
--- a/typing/typeclass.ml
+++ b/typing/typeclass.ml
@@ -580,7 +580,7 @@ let make_abbrev env
Ctype.close_object obj_ty;
Ctype.end_def ();
List.iter Ctype.generalize obj_ty_params;
- if not (List.for_all (Ctype.closed_schema false) obj_ty_params) then
+ if not (List.for_all Ctype.closed_schema obj_ty_params) then
raise(Error(cl.pcl_loc,
Non_generalizable(obj_id, obj_ty_params)));
begin match Ctype.closed_schema_verbose obj_ty with
diff --git a/typing/typemod.ml b/typing/typemod.ml
index ebb69776b4..593ece951a 100644
--- a/typing/typemod.ml
+++ b/typing/typemod.ml
@@ -217,14 +217,11 @@ let check_unique_names sg =
List.iter check_item sg
(* Check that all core type schemes in a structure are closed *)
-(* Also, fully generalize all types (set all type levels to generic
- level) *)
let closed_class classty =
- (* Also make associated abbreviations fully generic *)
- List.for_all (Ctype.closed_schema true) classty.cty_params &
- List.for_all (Ctype.closed_schema true) classty.cty_args &
- Vars.fold (fun _ (_, ty) -> (or) (Ctype.closed_schema true ty))
+ List.for_all Ctype.closed_schema classty.cty_params &
+ List.for_all Ctype.closed_schema classty.cty_args &
+ Vars.fold (fun _ (_, ty) -> (or) (Ctype.closed_schema ty))
classty.cty_vars true
let rec closed_modtype = function
@@ -233,7 +230,7 @@ let rec closed_modtype = function
| Tmty_functor(id, param, body) -> closed_modtype body
and closed_signature_item = function
- Tsig_value(id, desc) -> Ctype.closed_schema true desc.val_type
+ Tsig_value(id, desc) -> Ctype.closed_schema desc.val_type
| Tsig_module(id, mty) -> closed_modtype mty
| Tsig_class(id, classty) -> closed_class classty
| _ -> true
@@ -242,7 +239,7 @@ let check_nongen_scheme env = function
Tstr_value(rec_flag, pat_exp_list) ->
List.iter
(fun (pat, exp) ->
- if not (Ctype.closed_schema true exp.exp_type) then
+ if not (Ctype.closed_schema exp.exp_type) then
raise(Error(exp.exp_loc, Non_generalizable exp.exp_type)))
pat_exp_list
| Tstr_class cl ->