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: 454 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Original bug ID: 454
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: Luc HABERT
Version: 3.01
OS: Linux
Submission from: bastet.loria.fr (152.81.7.147)
This message may be redundant with fixed/342, but I am not sure, so I prefer to
repeat it.
The following program :
type a=
| A of c
| B of c
and c={lvar:int; lassoc: c;lnb:int}
let foo=function
| (A {lnb=i}|B {lnb=i}) when i=0 -> ()
| A {lassoc=({lnb=j});lnb=i} ->()
| _ -> ()
causes the compiler (as well ocamlc as ocamlopt) to crash with the message :
If I remove the field lvar in the definition of c, then I get :
Uncaught exception: File "bytecomp/matching.ml", line 0, characters 2139-2151:
Assertion failed
This bug occurs only if the first two cases of the match are present in this
order.
The text was updated successfully, but these errors were encountered: