Swift 3.0: ошибка компилятора при вызове global func min <T> (T, T) в расширении Array или Dictionary

После конвертации из Swift 2.2 в 3.0 мойArray расширение больше не компилируется, потому что оно содержит вызов глобальной стандартной библиотечной функцииmin<T>(T,T) и показывает ошибку компилятораextra argument in call.

Вот простой способ воспроизвести ошибку:

extension Array {
    func smallestInt(first: Int, second: Int) -> Int {
        return min(first, second) // compiler error: "Extra argument in call"
    }
}

Я получаю ту же ошибку при добавлении той же функции к расширениюDictionaryв то время как точно такой же код прекрасно компилируется в расширении других типов (например,String или жеAudioBuffer):

Глядя на документациюArray а такжеDictionaryЯ считаю, что есть методы экземпляра наSequence названныйpublic func min() -> Element? а такжеpublic func min(by areInIncreasingOrder: (Element, Element) throws -> Bool) rethrows -> Element?, Хотя обаString а такжеAudioBuffer не имеют никакого видаmin(...) функция.

Возможно ли, что по этой причине я не могу вызвать глобальную функцию? Компилятор не может различить глобальныйfunc min<T>(T,T) а такжеself.min(...) хотя у них совершенно разные подписи?

Это ошибка или особенность? Что я делаю неправильно? Как я могу позвонитьmin(T,T) правильно внутриArray расширение?

Ответы на вопрос(1)

Ваш ответ на вопрос