Hi, I don't understand your comment, can you explain some more please?
Thanks, -- Howard. On Monday, 21 March 2016, zh ao <owe...@gmail.com> wrote: > You protocol is not defined properly. > > On Mon, Mar 21, 2016 at 7:08 AM, Howard Lovatt via swift-users < > swift-users@swift.org > <javascript:_e(%7B%7D,'cvml','swift-users@swift.org');>> wrote: > >> HI, >> >> Does anyone know what is happening here: >> >> protocol Subscriptable { >> >> associatedtype Element >> >> associatedtype Index >> >> var firstIndex: Index { get } >> >> var lastIndex: Index { get } >> >> subscript(index: Index) -> Element { get set } >> >> } >> >> >> struct AllSubscriptable<E, I>: Subscriptable { >> >> typealias Element = E >> >> typealias Index = I >> >> let firstIndexee: () -> I >> >> let lastIndexee: () -> I >> >> let subscriptee: (index: I) -> E >> >> let setSubscriptee: (index: I, element: E) -> Void >> >> var firstIndex: I { return firstIndexee() } >> >> var lastIndex: I { return lastIndexee() } >> >> subscript(index: I) -> E { >> >> get { return subscriptee(index: index) } >> >> set { setSubscriptee(index: index, element: newValue) } >> >> } >> >> } >> >> >> extension Array { >> >> var asScriptable: AllSubscriptable<Element, Int> { >> >> return AllSubscriptable( >> >> firstIndexee: { return self.startIndex }, // Error: Cannot >> convert `() -> Int` to expected `() -> _` >> >> lastIndexee: { return self.endIndex }, >> >> subscriptee: { return self[$0] }, >> >> setSubscriptee: { self[$0] = $1 } >> >> ) >> >> } >> >> } >> >> >> The error, "Cannot convert `() -> Int` to expected `() -> _`", on the >> `firstIndexee` closure is very strange since the types are correct and the >> same as `lastIndexee` which does not have an error. >> >> Also if the set subscript in Subscriptable and then all the other set >> support in AnySubscriptabe and in the extension is removed, then no error. >> >> Any clues to why? >> >> -- Howard. >> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org >> <javascript:_e(%7B%7D,'cvml','swift-users@swift.org');> >> https://lists.swift.org/mailman/listinfo/swift-users >> >> > -- -- Howard.
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users