Hi – I think you’re hitting a bug that was fixed recently. There was a missing default for this particular combination’s slice type, which then interacted quite unpleasantly with a compiler bug to cause a crash. Can you try it with the latest Xcode beta?
In the mean-time, adding the following to your declaration of your DynamicList ought to do as a workaround: typealias SubSequence = MutableRangeReplaceableBidirectionalSlice<DynamicList> > On Mar 10, 2017, at 3:32 PM, Don Giovanni via swift-users > <swift-users@swift.org> wrote: > > The following code generates a segmentation error: > > > extension Int > { > static prefix func++(i:Int)->Int{ > > return i+1; > } > > static prefix func--(i:Int)->Int{ > return i-1; > } > } > > > infix operator <-; > > class DynamicList<T>: RangeReplaceableCollection, MutableCollection, > BidirectionalCollection > { > > var length:Int; > var arr:Array<T>?; > var startIndex:Int{ > return 0; > } > var endIndex:Int{ > > return length; > } > > subscript(i:Int)->T{ > get{ > return arr![i]; > } > set{ > arr![i] = newValue; > } > } > > func index(after i: Int) -> Int{ > return ++i; > } > > func index(before i: Int) -> Int{ > return --i; > } > > required init(){ > length = 0; > > > > } > > > > static func <- (left: inout DynamicList<T>, right: > DynamicList<T>){ > > } > > > /* func replaceSubrange<C>(_ subrange: Range<Self.Index>, with > newElements: C) where C : Collection, > C.Iterator.Element == Iterator.Element */ > > > > func replaceSubrange<C>(_ subrange: Range<DynamicList.Index>, > with c: C) > where C : Collection, C.Iterator.Element == > DynamicList.Iterator.Element{ > > > > > > > > > > } > > > } > > My intent here is to have the generic class `DynamicList<T>` > > adopt three protocols: > > `class DynamicList<T>: RangeReplaceableCollection, MutableCollection, > BidirectionalCollection` > > as indicated in the code above but it generates segmentation error. > > However, when I replace `MutableCollection` with `Collection`, code above > complies. > > If I remove `BidirectionalCollection`, the code above compiles with no > segmentation error. > > Is it not possible to adopt all 3: > > - RangeReplaceableCollection > - MutableCollection > - BidirectionalCollection > > at the same time? Thanks. > > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users