Несогласованное завершение Функции (Процедуры) по КонецПроцедуры (КонецФункции)
Опишите ошибку Если последним оператором в Функции (Процедуре) является ключевое слово, то возможно её завершение несогласованным парным ключевым словом КонецПроцедуры (КонецФункции)
Воспроизведение ошибки
Процедура Проц1()
Возврат
КонецФункции
Функция Функ1()
Если Истина Тогда
Возврат 0
КонецЕсли
КонецПроцедуры
Процедура Проц2()
Для й=0 по 1 Цикл
// ...
КонецЦикла
КонецФункции
и т.п. - компилируется, хотя не должно.
А так уже нормально, с ошибкой Ожидается символ: EndProcedure:
Процедура Проц3()
Возврат;
КонецФункции
Ожидаемое поведение Должна всегда выдаваться ошибка для несогласованной пары ключевых слов
Дополнительная информация В сообщении "Ожидается символ: EndProcedure" ожидаемый символ (ключевое слово) всегда на английском языке
Всё гораздо хуже
Процедура Проц4()
Для й=0 по 1 Цикл
КонецЦикла
ИначеЕсли
Функция Функ2()
Если Истина Тогда
Возврат 0
КонецЕсли
КонецПопытки
Сообщить("Это тоже работает")
И ещё баг в парсере
Процедура Проц3()
Попытка
Возврат
Исключение
КонецПопытки
КонецПроцедуры
Ошибка в строке: 4,12 / Процедуры не могут возвращать значение Исключение
В том числе и в v2
А в 1.x тоже? Интересно, когда сломалось
Сломалось на PR #608. И там в ревью было замечание на этот счёт.
Тоже в парсере, косвенно связанное с обсуждаемым (не углубляясь в обработчики событий). Успешно компилируется:
Процедура Обработчик()
КонецПроцедуры
Если Истина Тогда
ДобавитьОбработчик ЭтотОбъект.Событие ИначеЕсли ЭтотОбъект.Обработчик
КонецЕсли
Сломалось на PR https://github.com/EvilBeaver/OneScript/pull/608. И там в ревью было замечание на этот счёт.
@dmpas смотри, как ты умеешь надежно ломать - пять лет никто не находил! 😏
А влить PR#1181 для v1?
Разве в v1 не влито???
Да, был уверен, что мы это влили в 1.8... мой косяк