Подтвердить что ты не робот

"неоднозначное использование" для общего метода после перехода на быстрый 4

Я пытаюсь перенести свой код с xcode 8.2 swift 3.0.2 на xcode 9 swift 4, и у меня есть проблема с этим кодом:

func test<T0, TRet>(_ fn: (T0) -> TRet) -> Void {
    print("foo1")
    print(T0.self)
}

func test<T0, T1, TRet>(_ fn: (T0, T1) -> TRet) -> Void {
    print("foo2")
    print(T0.self)
    print(T1.self)
}

let fn2 : (Int, Int) -> Int = { (x:Int, y:Int)->Int in
    return x+y
}

test(fn2)

xcode 8.0.2, результаты swift 3.0.2:

foo2
Int
Int

xcode 9, быстрый результат 4:

Playground execution failed:

error: MyPlayground.playground:12:1: error: ambiguous use of 'test'
test(fn2)
^

MyPlayground.playground:1:6: note: found this candidate
func test<T0, T1, TRet>(_ fn: (T0, T1) -> TRet) -> Void {
^

Я что-то упустил? Есть ли новая функция в swift 4, которая вызывает эту ошибку?


Update

Я подал ошибку на bugs.swift.org, как это было предложено в комментариях.
https://bugs.swift.org/browse/SR-6108

4b9b3361