[01:19:21] <valexey> Гм. А правда, что в Аде можно как и в сях забыть вернуть значение из функции, и тебе за это компилятор по голове не настучит (ну, то есть максимум варнингом побурчит и всё)?
[09:14:22] <yeo> valexey, если в функции нет ни одного return - это синтаксическая ошибка. но если у тебя к примеру if а внутри return, а в конце функции нет return, то это warning
[09:36:17] <yeo> А как по другому? Пусть у тебя в конце функции идет вызов процедуры Proc; Компилятор не знает вернется оттуда управление или нет, поэтому не может проверить нужен return или нет
[09:48:37] <landgraf> yeo, ставить return raise No_Return_Exception :)
[09:49:01] <landgraf> перед каждым эндом
[09:49:08] <yeo> исключение и так будет
[09:49:10] <landgraf> но это не компиллятор, да
[09:49:20] <landgraf> а какое?
[09:49:32] <yeo> Program_Error помойму
[11:42:09] <landgraf> main.adb:5:09: warning: Program_Error may be raised at run time
[11:42:12] <landgraf> получается так
[12:16:54] <valexey> yeo: обычно, во всех языках, компилятор проверяет все возможные пути в функции, и если существует путь где не будет в конце return, то это ошибка компиляции
[12:17:34] <valexey> специально вот проверил в java, go, rust, d.
[12:17:44] <valexey> это везде ошибка компиляции.
[12:18:01] <valexey> не ошибкой это является только в Си и Аде.
[12:18:46] <valexey> а, в kotlin тоже проверил. аналогично.