> On Oct 16, 2017, at 7:20 AM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
>
> To start with, the one you gave as an example at the beginning of this
> discussion: Two sets with identical elements which have different internal
> storage and thus give different orderings as sequences. You yourself have
> argued that the confusion around this is enough of a problem that we need to
> make a source-breaking change (renaming it) to warn people that the results
> of the ‘elementsEqual’ algorithm are undefined for sets and dictionaries.
>
> No, I am arguing that the confusion about ‘elementsEqual’ is foremost a
> problem with its name; the result of this operation is not at all undefined
> for two sets but actually clearly defined: it returns true if two sets have
> the same elements in the same iteration order, which is a publicly observable
> behavior of sets (likewise dictionaries).
But that iteration order is undefined and could easily change due to changes in
the private/internal structure of sets/dictionaries. Algorithms that rely on
that “publicly observable behavior” (i.e. leaking of internals) will suddenly
break. You keep claiming that this bug is a feature because it is the current
behavior… but that is tautological reasoning.
Thanks,
Jon
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution