merlin
merlin copied to clipboard
Destructing punned record field breaks syntax
Consider the following code:
type t =
{ a : int * int
; b : string
}
let f ({ a; b } : t) = assert false
With the cursor at record field a on the last line of the snippet, executing destruct gives:
let f ({ (_, _); b } : t) = assert false
whereas the expected result should be something like:
let f ({ a = (_, _); b } : t) = assert false
Thanks for the report, I was able to reproduce the issue.