Closed Pacman99 closed 2 years ago
I think the precedence list has duplicated entries of a
Diagnosis looks correct... now to find the root cause :-/
It looks like on the Nix 2.5.1 that I use, we don't have (no longer have?) O == O
where O
is an object, which causes the c3 linearization algorithm to malfunction.
The algorithm works properly when passed comparable objects such as strings or numbers. But it fails when passed objects. Maybe we could give each object a unique identifier, but doing that in a pure way is a bitch, and doing that by introducing comparable low-level markers that are pure to compare but impure to print would require extending the base language. Or is there a builtin ===
function?
I pushed debugging statements in branch debugMultipleInheritance
that demonstrate the issue.
evaluates to
3
when it should be2