This seems to be https://bugs.swift.org/browse/SR-1856, which is resolved in 
Swift 4.1.

Martin

> Am 12.01.2018 um 07:49 schrieb Kelvin Ma via swift-dev <swift-dev@swift.org>:
> 
> it happens when the n is a literal 
> 
> let a:[Int] = [1, 2, 3]
> let f:(Int) -> Int = { $0 + 5 }
> 
> print(a.prefix(5).map(f))
> 
> 
> ab.swift:4:7: error: ambiguous use of 'prefix'
> print(a.prefix(5).map(f))
>       ^
> Swift.Collection:85:17: note: found this candidate
>     public func prefix(_ maxLength: Int) -> Self.SubSequence
>                 ^
> Swift.Sequence:81:17: note: found this candidate
>     public func prefix(_ maxLength: Int) -> AnySequence<Self.Element>
> 
> 
> On Thu, Jan 11, 2018 at 11:30 PM, Ben Cohen <ben_co...@apple.com> wrote:
> Hi Kelvin,
> 
> Can you give a bit more detail on the type of the sequence, and which 
> compiler version you’re seeing this on?
> 
> I can’t reproduce this with a recent Xcode or a recent master toolchain with 
> this code:
> 
> let sequence = 0..<10
> let n = 5
> let f = { $0*2 }
> 
> sequence.prefix(n).map(f)
> 
> Thanks
> Ben
> 
>> On Jan 11, 2018, at 19:11, Kelvin Ma via swift-dev <swift-dev@swift.org> 
>> wrote:
>> 
>> when I write sequence.prefix(n).map(f) the compiler complains that .prefix 
>> is ambiguous. If I replace it with [..<n] it works fine. Why is this 
>> happening? I found SR-1856 which looks like a similar issue but it’s marked 
>> fixed.
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 
> 
> _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to