Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006394OCamlOCaml typingpublic2014-05-05 15:072014-05-07 12:58
Reporterfrisch 
Assigned Togarrigue 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version4.02.0+dev 
Summary0006394: Assertion failed in Typecore.expand_path
DescriptionIt is possible to reach the "assert false" in Typecore.expand_path with the following code:

module rec X : sig
  type t = int * bool
end = struct
  type t = A | B
  let f = function A | B -> 0
end

Returning the "p" argument instead of failure seems to fix the problem, but I'd prefer if someone more knowledgeable could confirm this is the right fix.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0011380)
garrigue (manager)
2014-05-07 12:58

Fixed as suggested in trunk at revision 14757.

I scratched my head a while to understand what is happening:
we are expanding the path of a datatype, so if the environment
is correctly constructed, it can only be a datatype (or an abstract
type is some file is missing).
However, recursive modules may break this invariant by adding
an incoherent equation, which will be detected later.

- Issue History
Date Modified Username Field Change
2014-05-05 15:07 frisch New Issue
2014-05-07 12:58 garrigue Note Added: 0011380
2014-05-07 12:58 garrigue Status new => resolved
2014-05-07 12:58 garrigue Fixed in Version => 4.02.0+dev
2014-05-07 12:58 garrigue Resolution open => fixed
2014-05-07 12:58 garrigue Assigned To => garrigue


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker