Is your feature request related to a problem? Please describe.
Есть фрагмент кода:
let x = f()
function f() {
print(x as string)
return 5
}
Сейчас он сваливается с ошибкой: (3, 11)-(3, 12) Cannot define type
Однако, если я пропишу явно тип для переменной x, то программа дойдёт до кодгена.
Describe the solution you'd like
При явном указании типа, а также в указанной ситуации статический анализ должен завершаться с ошибкой (3, 11)-(3, 12) Cannot access 'x' before initialization
Этого можно добиться, если отслеживать состояние инициализированности символа.
По умолчанию, оно false и в момент объявления происходит инициализация.
Исключения, когда сразу true:
Is your feature request related to a problem? Please describe. Есть фрагмент кода:
Сейчас он сваливается с ошибкой:
(3, 11)-(3, 12) Cannot define type
Однако, если я пропишу явно тип для переменной
x
, то программа дойдёт до кодгена.Describe the solution you'd like При явном указании типа, а также в указанной ситуации статический анализ должен завершаться с ошибкой
(3, 11)-(3, 12) Cannot access 'x' before initialization
Этого можно добиться, если отслеживать состояние инициализированности символа. По умолчанию, оно
false
и в момент объявления происходит инициализация. Исключения, когда сразуtrue
:Additional context https://github.com/Stepami/hydrascript/pull/4#issuecomment-1665987539