Issue 1141428: more contains tests (original) (raw)

Recently, there was a change to speed up contains.

x in (1, 2, 3) would be compiled as x in frozenset(1, 2, 3).

This was backed out, because frozensets raise a typeerror when asked about unhashable objects.
These objects can't be in the set, but there was concern about supporting objects in which a mutable and an immutable compare equal.

So long as that is a requirement, it should be tested.

The new test for sequences ensures that they will use eq (and not rely on hash) in the future.

The change to the rich compare tests is just a comment, pointing out that dicts can rely on hash as well as eq.