underestimatedCount complexity documentation is broken #70755
Labels
bug
A deviation from expected or documented behavior. Also: expected but undesirable behavior.
documentation
inaccurate info
Bug → documentation: Inaccurate info
Sequence
Area → standard library: The `Sequence` protocol
standard library
Area: Standard library umbrella
swift 6.0
Description
This was done in ea49459
The correct complexity bound is O(N) where N is the length of the sequence.
The current wording is meaningless, other than to say the complexity bound is O(N) (as given by Collection's requirements). When you are handling a
Sequence
, (modulo dynamic casts that you couldn't even perform when that change was made and that nobody does in practice), you don't know that it isn't aCollection
. Furthermore, nearly anySequence
can be made to conform toCollection
post-hoc. I don't know what made anyone think they could tighten a complexity bound on an existing protocol, but (obviously) when you do that you break anyone that had a previously-valid conformance. More generally, it is broken and wrong to loosen constraints in a refinement. In this case that would make everyCollection
not-aSequence
.Reproduction
Read the docs.
Expected behavior
The docs make sense and are meaningful.
Environment
Any environment you like
Additional information
No response
The text was updated successfully, but these errors were encountered: