This function seems simple enough:
func foo(a: [Int], n: Int) { var x : [Int] = a[0..<n] } But it doesn’t compile. error: ambiguous subscript with base type '[Int]' and index type 'Range<Int>' var x : [Int] = a[0..<n] ~^~~~~~~ Swift.Array:100:12: note: found this candidate public subscript (subRange: Range<Int>) -> ArraySlice<Element> { get set } ^ Swift.MutableCollectionType:3:12: note: found this candidate public subscript (bounds: Range<Self.Index>) -> MutableSlice<Self> { get set } ^ Swift.CollectionType:2:12: note: found this candidate public subscript (bounds: Range<Self.Index>) -> Slice<Self> { get } ^ The oddity is that if I change the assignment to this var y : [Int] = Array(a[0..<n]) then the compiler is happy. Shouldn’t it be able to do any necessary type inference from the fact that the expression is in a context where an array is required? Neil Faiman _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users