Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005469OCamlOCaml generalpublic2012-01-09 12:042012-01-10 04:08
Reporterjm 
Assigned Togarrigue 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
Platformi686OSDebianOS VersionSid
Product Version3.12.1 
Target VersionFixed in Version3.13.0+dev 
Summary0005469: ocamlc functor type private messed up
Description% tail -n +1 {ok,ko}.ml
==> ok.ml <==
module M (T:sig type t end)
 = struct type t = private { t : T.t } end
        module T = struct type t end
        module R = M(T)

==> ko.ml <==
module M (T:sig type t end)
 = struct type t = private { t : T.t } end
module P
 = struct
        module T = struct type t end
        module R = M(T)
 end
% ocamlc -i ok.ml
module M :
  functor (T : sig type t end) -> sig type t = private { t : T.t; } end
module T : sig type t end
module R : sig type t = M(T).t = private { t : T.t; } end
/tmp % ocamlc -c ok.ml
% ocamlc -i ko.ml
module M :
  functor (T : sig type t end) -> sig type t = private { t : T.t; } end
module P :
  sig
    module T : sig type t end
    module R : sig type t = M(T).t = private { t : T.t; } end
  end
% ocamlc -c ko.ml
File "ko.ml", line 1:
Error: The implementation ko.ml
       does not match the interface (inferred signature):
       Modules do not match:
         sig
           module T : sig type t = P.T.t end
           module R : sig type t = P.R.t = private { t : T.t; } end
         end
       is not included in
         sig
           module T : sig type t end
           module R : sig type t = M(T).t = private { t : T.t; } end
         end
       Modules do not match:
         sig type t = R.t = private { t : T.t; } end
       is not included in
         sig type t = M(T).t = private { t : T.t; } end
       Type declarations do not match:
         type t = R.t = private { t : T.t; }
       is not included in
         type t = M(T).t = private { t : T.t; }
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0006634)
garrigue (manager)
2012-01-10 04:08

Fixed in mtype.ml, both in trunk revision 12005 and version/3.12 revision 12006.

- Issue History
Date Modified Username Field Change
2012-01-09 12:04 jm New Issue
2012-01-09 13:46 gasche Assigned To => garrigue
2012-01-09 13:46 gasche Status new => assigned
2012-01-10 04:08 garrigue Note Added: 0006634
2012-01-10 04:08 garrigue Status assigned => closed
2012-01-10 04:08 garrigue Resolution open => fixed
2012-01-10 04:08 garrigue Fixed in Version => 3.13.0+dev


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker