Я переключаюсь на Swift, и мне действительно не нравится, что следующий код компилируется без предупреждения:
func f(_ x: inout Int?) {
var x: Int? // <-- this declaration should produce a warning
x = 105
if x! < 1000 {}
}
var a: Int? = 3
f(&a)
print("\(a)")
и, конечно же, выходы Optional(3)
после выполнения.
В этом примере локальная переменная x
затеняет параметр функции x
.
Включение предупреждения Hidden Local Variables
(GCC_WARN_SHADOW
) в настройках проекта не приводит к возникновению предупреждения.
Вопрос: Как мне заставить компилятор Swift 3 предупреждать меня о таком затенении?