[swift-evolution] [Pitch] Removing the empty initialiser requirement from RangeReplaceableCollection

Dmitri Gribenko gribozavr at gmail.com
Thu Jul 7 20:31:52 CDT 2016


On Thu, Jul 7, 2016 at 6:14 PM, Dave Abrahams via swift-evolution
<swift-evolution at swift.org> wrote:
>
> on Wed Jul 06 2016, Tim Vermeulen <swift-evolution at swift.org> wrote:
>
>> This is a follow up from this swift-users thread: https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20160704/002489.html
>>
>> As it stands, RangeReplaceableCollection requires an implementation
>> for init(), which is used in the default implementations of (as far as
>> I can tell) init(_:), init(repeating:count:) and
>> removeAll(keepingCapacity:). The latter of these methods should be
>> implementable with removeSubrange(_:) instead.
>
> You can't implement `removeAll(keepingCapacity: false)` with
> `removeSubrange(_:)`.  How do you propose to provide the other default
> implementations?
>
>> I would like to propose to *remove* all three initialisers from this
>> protocol, because it makes it impossible for some collections to
>> conform to it that need extra data for its initialisation, but are
>> otherwise perfectly capable of having arbitrary subranges replaced by
>> elements from another collection.
>
> I agree with the goal, but I'd like to see an implementation before I
> agree that it's acheivable.

I agree that we need to see an implementation to be able to evaluate
the suggestion.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/


More information about the swift-evolution mailing list