Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
to your account
Original bug ID: 7421
Assigned to: @garrigue
Status: resolved (set by @garrigue on 2016-12-10T02:48:23Z)
Fixed in version: 4.05.0 +dev/beta1/beta2/beta3/rc1
Monitored by: @gasche @yallop
The exhaustivity/refutation checks do not taken into account the hidden | member of the lazy type:
# type (_, _) eq = Refl : ('a, 'a) eq;;
type (_, _) eq = Refl : ('a, 'a) eq
# type empty = (int, unit) eq;;
type empty = (int, unit) eq
# let f (x : ('a, empty Lazy.t) result) =
match x with
| Ok x -> x
| Error (lazy _) -> .;;
val f : ('a, empty Lazy.t) result -> 'a = <fun>
# (f (Error (lazy (raise Not_found))) : string list list);;
The text was updated successfully, but these errors were encountered:
Comment author: @garrigue
Fixed by commit 2608a18.
Do not split in a lazy pattern.
Sorry, something went wrong.
Comment author: @gasche
Is this really fixed in 2608a18? It doesn't seem related to lazy patterns
(I was curious to have a look at the patch. Would you have forgotten to commit it?)
Sorry, this was the fix for #7424.
This PR is actually fixed by commit d8429e5.
No branches or pull requests