You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 4383 Reporter: squirrel Status: closed (set by @garrigue on 2007-09-10T03:05:31Z) Resolution: fixed Priority: normal Severity: minor Version: 3.10.0 Fixed in version: 3.10+dev Category: ~DO NOT USE (was: OCaml general) Monitored by: squirrel
Bug description
If a module A containing a private type is included in module B which does not have a type signature, the following error occurs:
The implementation b.ml does not match the interface (inferred signature):
Type declarations do not match:
type t = A.t
is not included in
type t = A.t#row
This did not occur in 3.09.3.
Additional information
The following code was used to produce this error:
module A = struct
type t = private [> ]
end
include A
The same error occurs if a private object type is used in place of the private variant.
Note that if the struct is included directly, e.g. "include struct type t = private [> ] end", then the error does not occur.
The text was updated successfully, but these errors were encountered:
Fixed in CVS.
The code was assuming than row types could only be abstract in signatures,
but after some change in 3.10 a module may be checked with the signature
inferred from itself, which may in turn contain manifest row types if the
include construct was used...
Original bug ID: 4383
Reporter: squirrel
Status: closed (set by @garrigue on 2007-09-10T03:05:31Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.10.0
Fixed in version: 3.10+dev
Category: ~DO NOT USE (was: OCaml general)
Monitored by: squirrel
Bug description
If a module A containing a private type is included in module B which does not have a type signature, the following error occurs:
The implementation b.ml does not match the interface (inferred signature):
Type declarations do not match:
type t = A.t
is not included in
type t = A.t#row
This did not occur in 3.09.3.
Additional information
The following code was used to produce this error:
module A = struct
type t = private [> ]
end
include A
The same error occurs if a private object type is used in place of the private variant.
Note that if the struct is included directly, e.g. "include struct type t = private [> ] end", then the error does not occur.
The text was updated successfully, but these errors were encountered: