[swift-dev] Needs better error msg?

Joe Groff jgroff at apple.com
Tue Sep 20 16:05:01 CDT 2016


> On Sep 20, 2016, at 1:45 PM, Kevin Choi via swift-dev <swift-dev at swift.org> wrote:
> 
> b.sw:
> func findIndex<T: Equatable>(array: [T], _ valueToFind: T) -> Int? {
>     for (index, value) in array.enumerated() {
>         if value == valueToFind {
>             return index
>         }
>     }
>     return nil
> }
> 
> let foundAtIndex = findIndex([1, 2, 3, 4], 3)
> print(foundAtIndex == 2) // true
> 
> ===================
> ~/git/swift-source$ build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/bin/swift b.sw
> b.sw:10:44: error: unnamed argument #2 must precede unnamed argument #1
> let foundAtIndex = findIndex([1, 2, 3, 4], 3)
>                              ~~~~~~~~~~~~  ^
>                              3             [1, 2, 3, 4]
> 
> The error seems to arise from the requirement:
> > If a parameter has an argument label, the argument must be labeled when you call the function.
> 
> Instead the shown error assumes the order is swapped because first argument was unnamed. Should the former (from requirement) be shown as the error here?

Yeah, that would make much more sense. If you have a moment, would you be able to report this as a bug on bugs.swift.org?

-Joe


More information about the swift-dev mailing list