EvilBeaver / OneScript

Исполняющая среда скриптов на языке 1С
http://oscript.io
Mozilla Public License 2.0
481 stars 107 forks source link

Ошибка вычисления функций из стандартной библиотеки без присваивания #1459

Closed leandr92 closed 1 month ago

leandr92 commented 1 month ago

Внезапно была обнаружена забавная но неприятная багуля.

Если выполнить скрипт состоящий из одной строки с вызовом функции из стандартной библиотеки, но без присваивания

Строка(1);

То получим исключение "/ Ошибка в строке: 1,7 / Ожидается символ: EndOfText}"

Если мы попытаемся так же без присваивания вызвать любую пользовательскую функцию, то все будет в порядке.

Если сравнивать поведение с 1С, то там тоже есть такая же проблема, но ошибка более понятная, хоть и тупая) "Строка кода 1: {(1,7)}: Встроенная функция может быть использована только в выражении. (Строка)" Есть ли какой-то способ обхода этой неприятной ситуации или закостыливания?

воспроизводится и на 1.9 и на 2.0

Mr-Rm commented 1 month ago

TWIMC: считать такое допустимым или ошибкой?

leandr92 commented 1 month ago

TWIMC: считать такое допустимым или ошибкой?

Так как сейчас у меня нет уверенности, что такая ошибка ("Ожидается символ: EndOfText") возникает только в этом кейсе, скорее всего нет. Я бы предложил, если и не менять поведение, то хотя бы сделать отдельную, более понятную, ошибку.

nixel2007 commented 1 month ago

1с-совместимо и все такое, но если выпиливание такого поведения приведёт к меньшей/более корректной кодовой базе, то я за то, чтобы такое поведение допускалось. Если же это по каким-то причинам очень сложно, то хотя бы привести к тексту исключения 1с.