[swift-evolution] [Draft] Rename Sequence.elementsEqual

Xiaodi Wu xiaodi.wu at gmail.com
Mon Oct 16 15:05:46 CDT 2017

On Mon, Oct 16, 2017 at 10:49 Jonathan Hull <jhull at gbis.com> wrote:

> On Oct 16, 2017, at 7:20 AM, Xiaodi Wu <xiaodi.wu at 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.

And an algorithm in which such “sudden breakage” would occur is...?

You keep claiming that this bug is a feature because it is the current
> behavior… but that is tautological reasoning.
> Thanks,
> Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171016/3dec9b7c/attachment.html>

More information about the swift-evolution mailing list