From 9660a06c73065bb0fcfb1d3d324e5ae69088be59 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Sat, 30 May 2026 08:21:12 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D1=82=D0=B0=D1=86=D0=B8=D0=B9=20=D0=BD?= =?UTF-8?q?=D0=B0=20&=D0=9F=D1=81=D0=B5=D0=B2=D0=B4=D0=BE=D0=BD=D0=B8?= =?UTF-8?q?=D0=BC=D0=94=D0=BB=D1=8F=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE?= =?UTF-8?q?=20=D0=9F=D1=80=D0=B8=D0=A0=D0=B0=D0=B7=D0=B2=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=87=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=D0=90=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Обновлена зависимость annotations 1.4.0 -> 1.6.0, в которой появилась аннотация &ПсевдонимДля. Она декларативно объявляет параметр конструктора композитной аннотации псевдонимом для параметра вложенной мета-аннотации, заменяя ручной перенос значений в ПриРазворачиванииАннотации. Полностью убран ПриРазворачиванииАннотации (чистый перенос значения): - АннотацияВыключен: Значение -> ВыключенЕсли.Причина - АннотацияТестовыйНабор: Характер -> Характер.Значение Частично (параметр Причина переведён на псевдоним, в ПриРазворачивании остаётся только генерация лямбды для параметра Значение): - АннотацияВключенДляOneScript, АннотацияВыключенДляOneScript - АннотацияВключенНаОС, АннотацияВыключенНаОС Для параметров со значением по умолчанию указан ПереноситьЗначениеПоУмолчанию = Истина, чтобы сохранить прежнее поведение: ранее ПриРазворачивании переносил значение безусловно, в том числе значение по умолчанию. Co-Authored-By: Claude Opus 4.8 --- packagedef | 2 +- ...5\320\275\320\224\320\273\321\217OneScript.os" | 12 ++++++------ ...65\320\275\320\235\320\260\320\236\320\241.os" | 9 +++++---- ...72\320\273\321\216\321\207\320\265\320\275.os" | 10 +--------- ...5\320\275\320\224\320\273\321\217OneScript.os" | 12 ++++++------ ...65\320\275\320\235\320\260\320\236\320\241.os" | 9 +++++---- ...71\320\235\320\260\320\261\320\276\321\200.os" | 15 ++++----------- 7 files changed, 28 insertions(+), 41 deletions(-) diff --git a/packagedef b/packagedef index d5167a8..ed0ebb8 100644 --- a/packagedef +++ b/packagedef @@ -19,7 +19,7 @@ .ВключитьФайл("oscript_modules") .ЗависитОт("1commands", "1.5.0") - .ЗависитОт("annotations", "1.4.0") + .ЗависитОт("annotations", "1.6.0") .ЗависитОт("asserts", "1.6.1") .ЗависитОт("async", "0.3.0") .ЗависитОт("autumn", "4.3.12") diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" index b1abda6..34e3077 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" @@ -1,7 +1,6 @@ #Использовать semver #Использовать annotations -Перем _Причина; // Причина пропуска Перем _Версия; // Проверяемая версия OneScript // Аннотация определяет что тест выполняется только для версий OneScript соответствующих указанному диапазону. @@ -28,9 +27,12 @@ // &Аннотация("ВключенДляOneScript") &ВключенЕсли(Значение = "") -Процедура ПриСозданииОбъекта(Значение, Причина = "Выключен для текущей версии OneScript") - _Версия = Значение; - _Причина = Причина; +Процедура ПриСозданииОбъекта( + Значение, + &ПсевдонимДля(Аннотация = "ВключенЕсли", Параметр = "Причина", ПереноситьЗначениеПоУмолчанию = Истина) + Причина = "Выключен для текущей версии OneScript" +) + _Версия = Значение; КонецПроцедуры Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт @@ -43,6 +45,4 @@ СтрШаблон("() -> Версии.ВерсияВДиапазоне(Новый СистемнаяИнформация().Версия, ""%1"");", _Версия) ); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Причина", _Причина); - КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" index 8e1235e..d9595c2 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" @@ -1,7 +1,6 @@ #Использовать annotations #Использовать collectionos -Перем _Причина; // Причина пропуска теста Перем _ОперационнаяСистема; // Переданная операционная система Перем ВозможныеОС; // Допустимые значения для указания операционной системы @@ -34,10 +33,13 @@ // &Аннотация("ВключенНаОС") &ВключенЕсли(Значение = "") -Процедура ПриСозданииОбъекта(Значение, Причина = "Выключен в текущей операционной системе") +Процедура ПриСозданииОбъекта( + Значение, + &ПсевдонимДля(Аннотация = "ВключенЕсли", Параметр = "Причина", ПереноситьЗначениеПоУмолчанию = Истина) + Причина = "Выключен в текущей операционной системе" +) _ОперационнаяСистема = Значение; - _Причина = Причина; ВозможныеОС = Списки.ИзЭлементов("Windows", "Linux", "MacOS"); @@ -50,7 +52,6 @@ Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "ВключенЕсли"); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Причина", _Причина); Условие = "() -> diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275.os" index d717c62..f3e72a6 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275.os" @@ -1,7 +1,5 @@ #Использовать annotations -Перем _Причина; // Причина пропуска теста - // Аннотация безусловно выключает выполнение теста // // Параметры: @@ -14,11 +12,5 @@ // &Аннотация("Выключен") &ВыключенЕсли(Значение = "() -> Истина") -Процедура ПриСозданииОбъекта(Значение) - _Причина = Значение; -КонецПроцедуры - -Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт - Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "ВыключенЕсли"); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Причина", _Причина); +Процедура ПриСозданииОбъекта(&ПсевдонимДля(Аннотация = "ВыключенЕсли", Параметр = "Причина") Значение) КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" index 1722698..b187e3f 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\224\320\273\321\217OneScript.os" @@ -1,7 +1,6 @@ #Использовать semver #Использовать annotations -Перем _Причина; // Причина пропуска Перем _Версия; // Проверяемая версия OneScript // Аннотация определяет что тест не будет выполнятся для версий OneScript соответствующих указанному диапазону. @@ -28,9 +27,12 @@ // &Аннотация("ВыключенДляOneScript") &ВыключенЕсли(Значение = "") -Процедура ПриСозданииОбъекта(Значение, Причина = "Выключен для текущей версии OneScript") - _Версия = Значение; - _Причина = Причина; +Процедура ПриСозданииОбъекта( + Значение, + &ПсевдонимДля(Аннотация = "ВыключенЕсли", Параметр = "Причина", ПереноситьЗначениеПоУмолчанию = Истина) + Причина = "Выключен для текущей версии OneScript" +) + _Версия = Значение; КонецПроцедуры Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт @@ -43,6 +45,4 @@ СтрШаблон("() -> Версии.ВерсияВДиапазоне(Новый СистемнаяИнформация().Версия, ""%1"");", _Версия) ); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Причина", _Причина); - КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" index dfd61e8..075153a 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\235\320\260\320\236\320\241.os" @@ -1,7 +1,6 @@ #Использовать annotations #Использовать collectionos -Перем _Причина; // Причина пропуска теста Перем _ОперационнаяСистема; // Переданная операционная система Перем ВозможныеОС; // Допустимые значения для указания операционной системы @@ -34,10 +33,13 @@ // &Аннотация("ВыключенНаОС") &ВыключенЕсли(Значение = "") -Процедура ПриСозданииОбъекта(Значение, Причина = "Выключен в текущей операционной системе") +Процедура ПриСозданииОбъекта( + Значение, + &ПсевдонимДля(Аннотация = "ВыключенЕсли", Параметр = "Причина", ПереноситьЗначениеПоУмолчанию = Истина) + Причина = "Выключен в текущей операционной системе" +) _ОперационнаяСистема = Значение; - _Причина = Причина; ВозможныеОС = Списки.ИзЭлементов("Windows", "Linux", "MacOS"); @@ -50,7 +52,6 @@ Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "ВыключенЕсли"); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Причина", _Причина); Условие = "() -> diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\235\320\260\320\261\320\276\321\200.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\235\320\260\320\261\320\276\321\200.os" index 1d22374..6bccf95 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\235\320\260\320\261\320\276\321\200.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\235\320\260\320\261\320\276\321\200.os" @@ -1,14 +1,5 @@ #Использовать annotations -Перем _Характер; - -Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ТипВладельцаСвойств, Свойство) Экспорт - - Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "Характер"); - РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(Аннотация, "Значение", _Характер); - -КонецПроцедуры - // Аннотация указывает что сценарий является тестовым набором. // Аннотацию необходимо размещать над конструктором сценария. // Можно указать способ управления жизненным циклом тестового набора. @@ -28,6 +19,8 @@ &Прозвище("ТестовыйНабор") &Характер(Значение = "") &Желудь -Процедура ПриСозданииОбъекта(Характер = "Компанейский") - _Характер = Характер; +Процедура ПриСозданииОбъекта( + &ПсевдонимДля(Аннотация = "Характер", Параметр = "Значение", ПереноситьЗначениеПоУмолчанию = Истина) + Характер = "Компанейский" +) КонецПроцедуры