Skip to content

Type parameter handling bug? #362

@nwf-msr

Description

@nwf-msr

Compiling

$include <result.sail>

union U ('a: Type) = { U1 : 'a }

type V = U(unit)

val main : unit -> unit
function main () = let r : result(V, unit) = Err(()) in ()

with f9db302 (and so probably the just-cut 0.17 release, I'm sorry) causes sail to die an inglorious death, croaking out Fatal error: exception Not_found and leaving behind an empty output file.

Confusingly, this is a minimized version of a much larger sail program that has been accepted without complaint in the past, so I am not sure what the actual preconditions for tripping over this are. This particular input seems fatal to the 0.15 and 0.16 installations I have handy, though.

Replacing the type V definition with type V = unit seems to result in successful compilation, so it seems like it's something to do with the fact that U is parametric?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions