on Wed Jul 06 2016, Tim Vermeulen <swift-users-AT-swift.org> wrote: > RangeReplaceableCollection has three initialisers: init(), init(_:) > and init(repeating:count:). The latter two are implemented using the > empty initialiser. But why are these initialisers part of this > particular protocol? As far as I can tell, no other methods of this > protocol depend on these initialisers. The requirement of the empty > initialiser makes it impossible to have a collection conform to this > protocol that needs additional data for its initialisation.
This is an excellent point, and I think it may have been an oversight that we made this a requirement. Please open a bug and/or file a radar. https://bugs.swift.org/secure/Dashboard.jspa Thanks! > For instance, I was making an array that works with any Strideable > indices, not just integers. A startIndex is needed for its > initialisation, so I can’t really conform it to > RangeReplaceableCollection. If I do it anyways (with a fatalError() in > the required empty initialiser) everything seems to work just fine, > except for the protocol’s three initialisers. > > Perhaps these initialisers should be moved to a (possible new) > different protocol? -- Dave _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users