hash method
override
Get a hashcode of an element.
The hashcode should be compatible with equals, so that if
equals(a, b)
then hash(a) == hash(b)
.
Implementation
int hash(Object o) {
if (o is Set) return new SetEquality(this).hash(o);
if (o is Map) return new MapEquality(keys: this, values: this).hash(o);
if (!_unordered) {
if (o is List) return new ListEquality(this).hash(o);
if (o is Iterable) return new IterableEquality(this).hash(o);
} else if (o is Iterable) {
return new UnorderedIterableEquality(this).hash(o);
}
return _base.hash(o);
}