Skip to content

Set.remove regression

I was testing the behavior of Set.remove and came upon some puzzling results. I have both 0.31.0 and 0.32.0 available.

Run the following with ligo run test:

let test =
    let s = Set.literal [0n; 1n; 2n] in
    let s2 = Set.remove 0n s in
    Test.log s2

Expected output is {1n ; 2n}, but 0.32.0 prints {0n}. When run with 0.31.0 the output is as expected. I'm demonstrating the behavior with Test.log here, but the result is the same with something like assert (Set.literal [1n;2n] = s2), so it's not just a serialization bug.

Edited by nox bello