Subtraction of multisets containing objects is broken in Pike 8.0.81.
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7494
Reported by @grubba
Pike v7.8 release 923 running Hilfe v3.5 (Incremental Pike Frontend)
> class Foo(int a) { int `<(mixed x) { return objectp(x) && (a < x->a); } }
> multiset m = (< @map(allocate(5), Foo) >);
> m - (< 0 >);
(1) Result: (< /* 5 elements */
HilfeInput()->Foo(),
HilfeInput()->Foo(),
HilfeInput()->Foo(),
HilfeInput()->Foo(),
HilfeInput()->Foo()
>)
Pike v8.0 release 81 running Hilfe v3.5 (Incremental Pike Frontend)
> class Foo(int a) { int `<(mixed x) { return objectp(x) && (a < x->a); } }
> multiset m = (< @map(allocate(5), Foo) >);
> m - (< 0 >);
(1) Result: (< >)