Программист Игорь решил добавить модуль для парсинга данных в стандартную библиотеку своего языка. Одним из модулей парсера будет конечный автомат, войдя в поток, Игорь набросал следующий код, что произойдёт в момент первой компиляции?
package main
type state func(x int) state
func start(x int) state {
if x == 0 {
return middle
} else {
return end
}
}
func middle(_ int) state {
return end
}
func end(_ int) state {
return start
}
func main() {
state := start(0)
state = state(1)
state = state(2)
}
Ошибка в коде: произойдёт ошибка во время компиляции "type 'state' used in self declaration"
В stdout ничего не выведется, но процесс завершится успешно
Runtime ошибка: возникнет бесконечная рекурсия