| Anonymous | Login | Signup for a new account | 2013-05-20 07:04 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||
| 0005469 | OCaml | OCaml general | public | 2012-01-09 12:04 | 2012-01-10 04:08 | |||
| Reporter | jm | |||||||
| Assigned To | garrigue | |||||||
| Priority | normal | Severity | major | Reproducibility | always | |||
| Status | closed | Resolution | fixed | |||||
| Platform | i686 | OS | Debian | OS Version | Sid | |||
| Product Version | 3.12.1 | |||||||
| Target Version | Fixed in Version | 3.13.0+dev | ||||||
| Summary | 0005469: 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; } | |||||||
| Tags | No tags attached. | |||||||
| Attached Files | ||||||||
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 |