diff options
author | Jérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr> | 1997-03-18 21:06:28 +0000 |
---|---|---|
committer | Jérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr> | 1997-03-18 21:06:28 +0000 |
commit | 58e8f3b8d0a8ab035c41d22d4d6734b1e2d4cc2c (patch) | |
tree | d46ec777d7b5dad0708260c2a21d08e8ff8657e2 /typing | |
parent | 6dc35f692dff60fa69a42157565c56ba2641030a (diff) | |
download | ocaml-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.ml | 2 | ||||
-rw-r--r-- | typing/typemod.ml | 13 |
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 -> |