OneScript icon indicating copy to clipboard operation
OneScript copied to clipboard

Переопределение функций глобального контекста

Open Mr-Rm opened this issue 2 years ago • 11 comments

Опишите ошибку Допускается переопределение функций глобального контекста

Воспроизведение ошибки

Функция СтрНайти(знач Стр1, знач Стр2)
	Возврат -1;
КонецФункции

Рез = СтрНайти("Ай!", "!");
Если Рез < 0 Тогда
	Сообщить("Ой!");
КонецЕсли	

Ой!

Ожидаемое поведение Ошибка в строке: 1,17 / Метод с таким именем уже определен: СтрНайти при компиляции

Окружение

  • Версия: v1.8.4, v2

Дополнительная информация Для встроенных функций будет ошибка, но непонятная

Функция СтрДлина(знач Стр1)
	Возврат 0;
КонецФункции

Ошибка в строке: 1,17 / Ожидается идентификатор

Mr-Rm avatar Sep 27 '23 08:09 Mr-Rm

А это не фича?

nixel2007 avatar Sep 27 '23 08:09 nixel2007

Тоже был вопрос "баг или фича?" В платформе не предусмотрено. Выглядит небезопасно, и никаких предупреждений нет. Почему СтрНайти можно переопределять, а СтрДлина - нельзя? Глобальная функция экранируется полностью, ничего подобного ::СтрНайти нет.

Mr-Rm avatar Sep 27 '23 09:09 Mr-Rm

А это не фича?

я бы зафичил это. Но как-нибудь в духе @override, например

&Переопределить или &ПереопределитьГлобально (счастливой отладки!)
Функция СтрНайти()
КонецФункции

dmpas avatar Sep 27 '23 09:09 dmpas

&Вместо ?

Mr-Rm avatar Sep 27 '23 10:09 Mr-Rm

Очень странно, кажется стек видимости должен был это проверять. Это баг однозначно. Возможно когда-то давно я это сломал

EvilBeaver avatar Oct 01 '23 08:10 EvilBeaver

При исправлении падает Осень: модуль (класс) autumn\src\internal\Классы\ЗапускательПриложения.os содержит процедуру ЗапуститьПриложение(), которая есть в глобальном.

Mr-Rm avatar Oct 24 '23 12:10 Mr-Rm

Оу. Косяк. Это внутренний класс, так что его можно исправить без последствий для клиентов

nixel2007 avatar Oct 24 '23 13:10 nixel2007

Вот только кажется, что эта же процедура есть и в Поделка. А вот она уже публичная

nixel2007 avatar Oct 24 '23 13:10 nixel2007

https://github.com/autumn-library/autumn/blob/master/src/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B/%D0%9F%D0%BE%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0.os#L271

nixel2007 avatar Oct 24 '23 13:10 nixel2007

Без волшебной аннотации, да?

nixel2007 avatar Nov 06 '23 09:11 nixel2007

@EvilBeaver закрылся ишуз от текста коммита

nixel2007 avatar Dec 09 '23 12:12 nixel2007