[swift-evolution] Removing enumerated?

Ole Begemann ole at oleb.net
Fri Feb 17 10:32:19 CST 2017


> On 17 Feb 2017, at 16:53, Vladimir.S via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Btw, in context of discussion of indices,
> should this be fixed soon:
> 
> func function<C: Collection>(c: C) {
>  for index in c.indices {
>    print(c[index])
>  }
> }
> ERROR: cannot subscript a value of type 'C' with an index of type 'C.Indices.Iterator.Element'
> 
> ?
> (have access for Swift 3.0.2 Release only for now, so probably this already fixed in dev version)

This will work once SE-0142 "Permit where clauses to constrain associated types" (https://github.com/apple/swift-evolution/blob/master/proposals/0142-associated-types-constraints.md) is implemented and the standard library takes advantage of this.

For the time being, you need to add an explicit constraint to the function:

    func function<C: Collection>(c: C)
        where C.Indices.Iterator.Element == C.Index {
        for index in c.indices {
            print(c[index])
        }
    }



More information about the swift-evolution mailing list