diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2013-09-04 15:12:37 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2013-09-04 15:12:37 +0000 |
commit | 7844495624be79259e613182e6a615319b2f4376 (patch) | |
tree | 8656b9339174ab9061b42be2b50c2d9563401c8a /typing/ctype.ml | |
parent | e9723139769a4df610fadba0fdeecab298c1c17e (diff) |
Merge branch 4.01 from branching point to 4.01.0+rc1
Command line used:
svn merge --accept postpone -r 13776:14055 $REPO/version/4.01 .
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'typing/ctype.ml')
-rw-r--r-- | typing/ctype.ml | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/typing/ctype.ml b/typing/ctype.ml index ef68a22c9..5b1f1c2e9 100644 --- a/typing/ctype.ml +++ b/typing/ctype.ml @@ -1435,7 +1435,7 @@ let rec extract_concrete_typedecl env ty = if decl.type_kind <> Type_abstract then (p, p, decl) else let ty = try try_expand_once env ty with Cannot_expand -> raise Not_found - in + in let (_, p', decl) = extract_concrete_typedecl env ty in (p, p', decl) | _ -> raise Not_found @@ -1877,19 +1877,19 @@ let reify env t = let t = create_fresh_constr ty.level name in link_type ty t | Tvariant r -> - let r = row_repr r in + let r = row_repr r in if not (static_row r) then begin - if r.row_fixed then iterator (row_more r) else - let m = r.row_more in - match m.desc with - Tvar o -> - let name = match o with Some s -> s | _ -> "ex" in - let t = create_fresh_constr m.level name in - let row = - {r with row_fields=[]; row_fixed=true; row_more = t} in - link_type m (newty2 m.level (Tvariant row)) - | _ -> assert false - end; + if r.row_fixed then iterator (row_more r) else + let m = r.row_more in + match m.desc with + Tvar o -> + let name = match o with Some s -> s | _ -> "ex" in + let t = create_fresh_constr m.level name in + let row = + {r with row_fields=[]; row_fixed=true; row_more = t} in + link_type m (newty2 m.level (Tvariant row)) + | _ -> assert false + end; iter_row iterator r | Tconstr (p, _, _) when is_object_type p -> iter_type_expr iterator (full_expand !env ty) @@ -2034,7 +2034,7 @@ and mcomp_type_decl type_pairs subst env p1 p2 tl1 tl2 = let decl' = Env.find_type p2 env in if Path.same p1 p2 then begin (* Format.eprintf "@[%a@ %a@]@." - !print_raw (newconstr p1 tl2) !print_raw (newconstr p2 tl2); + !print_raw (newconstr p1 tl2) !print_raw (newconstr p2 tl2); if non_aliasable p1 decl then Format.eprintf "non_aliasable@." else Format.eprintf "aliasable@."; *) let inj = |