Проблема:
При запуске следующего кода в Xcode 7.3 с быстрым 2.2 компилятор не может правильно указать тип необязательного:
import Foundation
func whatAmI<T>(inout property:T?)
{
switch property {
case is Int?:
print("I am an Int?")
case is String?:
print("I am a String?")
default:
print("I don't know what I am")
}
}
var string : String?
whatAmI(&string)
На моей стороне с Xcode 7.3 это напечатает I am an Int?
Однако, когда я инициализирую переменную пустой строкой перед ее передачей в функцию, коммутатор передает ее как String?.
Это будет печатать I am a String?
в предыдущей версии Xcode.
Получают ли вы похожие результаты?
Замечания:
То же самое происходит при использовании этой сигнатуры функции:
func whatAmI(property:AnyObject?)
- Ошибка -
Эта проблема является регрессией в быстром 2.2: https://bugs.swift.org/browse/SR-1024