Permalink
Browse files

Fix PR#6394: Assertion failed in Typecore.expand_path

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14757 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
  • Loading branch information...
1 parent 9961e6a commit 88e8bec16349d6ba2eb9aa197e47ad5ca38b525c Jacques Garrigue committed May 7, 2014
View
@@ -131,6 +131,7 @@ Bug fixes:
- PR#6383: Exception Not_found when using object type in absent module
- PR#6384: Uncaught Not_found exception with a hidden .cmi file
- PR#6385: wrong allocation of large closures by the bytecode interpreter
+- PR#6394: Assertion failed in Typecore.expand_path
- fix -dsource printing of "external _pipe = ..."
(Gabriel Scherer)
- bound-checking bug in caml_string_{get,set}{16,32,64}
@@ -295,12 +295,12 @@ Warning 10: this expression should have type unit.
unit -> object method private m : int method n : int method o : int end
# - : int * int = (1, 1)
# class c : unit -> object method m : int end
-# - : int = 94
-# - : int = 95
-# - : int = 96
-# - : int * int * int = (97, 98, 99)
-# - : int * int * int * int * int = (100, 101, 102, 33, 33)
-# - : int * int * int * int * int = (103, 104, 105, 33, 33)
+# - : int = 98
+# - : int = 99
+# - : int = 100
+# - : int * int * int = (101, 102, 103)
+# - : int * int * int * int * int = (104, 105, 106, 33, 33)
+# - : int * int * int * int * int = (107, 108, 109, 33, 33)
# Characters 42-69:
class a = let _ = new b in object end
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -294,12 +294,12 @@ Warning 10: this expression should have type unit.
unit -> object method private m : int method n : int method o : int end
# - : int * int = (1, 1)
# class c : unit -> object method m : int end
-# - : int = 94
-# - : int = 95
-# - : int = 96
-# - : int * int * int = (97, 98, 99)
-# - : int * int * int * int * int = (100, 101, 102, 33, 33)
-# - : int * int * int * int * int = (103, 104, 105, 33, 33)
+# - : int = 98
+# - : int = 99
+# - : int = 100
+# - : int * int * int = (101, 102, 103)
+# - : int * int * int * int * int = (104, 105, 106, 33, 33)
+# - : int * int * int * int * int = (107, 108, 109, 33, 33)
# Characters 42-69:
class a = let _ = new b in object end
^^^^^^^^^^^^^^^^^^^^^^^^^^^
View
@@ -573,7 +573,8 @@ let rec expand_path env p =
Some {type_manifest = Some ty} ->
begin match repr ty with
{desc=Tconstr(p,_,_)} -> expand_path env p
- | _ -> assert false
+ | _ -> p
+ (* PR#6394: recursive module may introduce incoherent manifest *)
end
| _ ->
let p' = Env.normalize_path None env p in

0 comments on commit 88e8bec

Please sign in to comment.