The logical MMD functions currently try to set a passed in destination PMCs value via assign, or they return a clone of themselves.

This is verly likely wrong: not all PMCs have to implement assign:

<Dan>: That's why the destination controls assignment.

Additionaly we can't assign to singletons or r/o PMCs.

So the right thing for the logical functions seems to be, to just return the left or right side according to their boolean value (or return a new Boolean false in case of xor), i.e. you get a reference to one of the PMCs usually.

This would break a few tests, which don't cope with these ref semantics.

Comments welcome,
leo



Reply via email to