diff options
author | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2003-11-07 00:19:08 +0000 |
---|---|---|
committer | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2003-11-07 00:19:08 +0000 |
commit | 010106506ce2be5da039fc7377fec42255c52cac (patch) | |
tree | 08c0fca6e02a7c121d83e5feec8c81c838cfbbfa | |
parent | 14abe89d551331df27aa20359b10b8eef317ab15 (diff) | |
download | ocaml-010106506ce2be5da039fc7377fec42255c52cac.tar.gz |
fix PR#1918
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5895 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | typing/typedecl.ml | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/typing/typedecl.ml b/typing/typedecl.ml index a2bd1fc8f4..c4bcc9def1 100644 --- a/typing/typedecl.ml +++ b/typing/typedecl.ml @@ -309,12 +309,14 @@ let check_recursion env loc path decl to_check = else if to_check path' && not (List.mem path' prev_exp) then begin try (* Attempt expansion *) - let (params, body) = Env.find_type_expansion path' env in + let (params0, body0) = Env.find_type_expansion path' env in let (params, body) = - Ctype.instance_parameterized_type params body in + Ctype.instance_parameterized_type params0 body0 in begin try List.iter2 (Ctype.unify env) params args' - with Ctype.Unify _ -> assert false + with Ctype.Unify _ -> + raise (Error(loc, Constraint_failed + (ty, Ctype.newconstr path' params0))); end; check_regular path' args (path' :: prev_exp) body with Not_found -> () |