Skip to content

Перевод аннотаций на &ПсевдонимДля#26

Open
nixel2007 wants to merge 1 commit into
sfaqer:masterfrom
nixel2007:feature/псевдонимдля-аннотации

Hidden character warning

The head ref may contain hidden characters: "feature/\u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0434\u043b\u044f-\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438"
Open

Перевод аннотаций на &ПсевдонимДля#26
nixel2007 wants to merge 1 commit into
sfaqer:masterfrom
nixel2007:feature/псевдонимдля-аннотации

Conversation

@nixel2007
Copy link
Copy Markdown
Contributor

@nixel2007 nixel2007 commented May 30, 2026

Что сделано

Обновлена зависимость annotations 1.4.01.6.0, в которой появилась аннотация &ПсевдонимДля. Она декларативно объявляет параметр конструктора композитной аннотации псевдонимом для параметра вложенной мета-аннотации, заменяя ручной перенос значений в ПриРазворачиванииАннотации.

Полностью убран ПриРазворачиванииАннотации (чистый перенос значения)

  • АннотацияВыключен: ЗначениеВыключенЕсли.Причина
  • АннотацияТестовыйНабор: ХарактерХарактер.Значение

Частично переведено

Параметр Причина переведён на псевдоним, а в ПриРазворачиванииАннотации остаётся только генерация лямбда-выражения для параметра Значение (его нельзя выразить псевдонимом, т.к. это преобразование человекочитаемого ввода в исполняемый код, а не копирование):

  • АннотацияВключенДляOneScript, АннотацияВыключенДляOneScript — генерация () -> Версии.ВерсияВДиапазоне(...)
  • АннотацияВключенНаОС, АннотацияВыключенНаОС — условная сборка лямбды по ТипПлатформы + валидация имени ОС в конструкторе

Сохранение поведения

Ранее ПриРазворачиванииАннотации переносил значение безусловно, в том числе значение по умолчанию параметра. У &ПсевдонимДля по умолчанию переносятся только явно переданные значения, поэтому для параметров со значением по умолчанию (Причина, Характер) указан ПереноситьЗначениеПоУмолчанию = Истина.

Проверка

./src/cli/main.os e — 5/5 тестов успешно, включая ТестПланФормируется, который прогоняет фикстуры со всеми этими аннотациями и проверяет характер жизненного цикла (Одиночка/Компанейский) и условия пропуска, проходящие через новые псевдонимы.

🤖 Generated with Claude Code

Summary by CodeRabbit

Примечания к выпуску

  • Chores

    • Обновлена зависимость annotations с версии 1.4.0 до 1.6.0.
  • Refactor

    • Оптимизирована внутренняя архитектура обработки аннотаций для повышения согласованности и снижения дублирования кода в системе управления аннотациями.

Review Change Stack

Обновлена зависимость annotations 1.4.0 -> 1.6.0, в которой появилась
аннотация &ПсевдонимДля. Она декларативно объявляет параметр конструктора
композитной аннотации псевдонимом для параметра вложенной мета-аннотации,
заменяя ручной перенос значений в ПриРазворачиванииАннотации.

Полностью убран ПриРазворачиванииАннотации (чистый перенос значения):
- АннотацияВыключен: Значение -> ВыключенЕсли.Причина
- АннотацияТестовыйНабор: Характер -> Характер.Значение

Частично (параметр Причина переведён на псевдоним, в ПриРазворачивании
остаётся только генерация лямбды для параметра Значение):
- АннотацияВключенДляOneScript, АннотацияВыключенДляOneScript
- АннотацияВключенНаОС, АннотацияВыключенНаОС

Для параметров со значением по умолчанию указан
ПереноситьЗначениеПоУмолчанию = Истина, чтобы сохранить прежнее поведение:
ранее ПриРазворачивании переносил значение безусловно, в том числе значение
по умолчанию.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 30, 2026 06:21
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 30, 2026

Walkthrough

Обновлена библиотека annotations до версии 1.6.0. Шесть классов аннотаций переработаны для использования параметрных псевдонимов: удалены внутренние поля-причины, переписаны конструкторы и упрощена логика распаковки аннотаций.

Changes

Унификация обработки параметров аннотаций через параметрные псевдонимы

Layer / File(s) Summary
Обновление зависимости annotations
packagedef
Версия annotations обновлена с 1.4.0 до 1.6.0 для получения поддержки параметрных псевдонимов в аннотациях.
Рефакторинг аннотаций Включен
src/core/Классы/АннотацияВключенДляOneScript.os, src/core/Классы/АннотацияВключенНаОС.os
Удалены поля _Причина, конструкторы переписаны с добавлением &ПсевдонимДля для связи с параметром Причина аннотации ВключенЕсли. Методы распаковки упрощены до установки вычисляемого значения.
Рефакторинг аннотаций Выключен
src/core/Классы/АннотацияВыключен.os, src/core/Классы/АннотацияВыключенДляOneScript.os, src/core/Классы/АннотацияВыключенНаОС.os
Удалены поля _Причина и методы распаковки. Конструкторы обновлены с параметрными псевдонимами для связи с метааннотацией ВыключенЕсли. Инициализация сокращена до специфичных для каждого класса операций.
Рефакторинг аннотации ТестовыйНабор
src/core/Классы/АннотацияТестовыйНабор.os
Удалены поле _Характер и метод распаковки ПриРазворачиванииАннотации. Конструктор переписан с параметрным псевдонимом, связывающим аннотацию "Характер" с полем Характер и переносящим значение по умолчанию.

🎯 3 (Moderate) | ⏱️ ~20 minutes

🐰 В версии новой аннотаций чудо—свершилось,
Параметров хаос в псевдонимы разрешилось,
Поля _Причина с _Характер ушли в прошлое,
Теперь распакуются корректно и просто! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно отражает основное изменение: миграция аннотаций на использование директивы &ПсевдонимДля вместо ручного переноса значений в ПриРазворачиванииАннотации.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Bumps the annotations dependency to 1.6.0 and refactors annotation classes to use the new &ПсевдонимДля (AliasFor) parameter feature, removing manual parameter propagation via ПриРазворачиванииАннотации.

Changes:

  • Updated annotations dependency from 1.4.0 to 1.6.0.
  • Replaced manual _Причина/_Характер storage and УстановитьЗначениеПараметраАннотации calls with declarative &ПсевдонимДля parameter aliases.
  • Simplified ПриСозданииОбъекта signatures and removed now-redundant ПриРазворачиванииАннотации logic for parameter forwarding.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packagedef Bump annotations dependency to 1.6.0 to enable &ПсевдонимДля.
ВключенДляOneScript Replace manual reason propagation with &ПсевдонимДля alias.
ВключенНаОС Replace manual reason propagation with &ПсевдонимДля alias.
Выключен Drop entire boilerplate; alias Значение directly to ВыключенЕсли.Причина.
ВыключенДляOneScript Replace manual reason propagation with &ПсевдонимДля alias.
ВыключенНаОС Replace manual reason propagation with &ПсевдонимДля alias.
ТестовыйНабор Remove _Характер handling; use &ПсевдонимДля for Характер.Значение.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packagedef`:
- Line 22: Тег в пакете неверен: вызов .ЗависитОт("annotations", "1.6.0")
ссылается на несуществующий тег; замените версию на реальный тег из репо
oscript-library/annotations (например v0.1.0 или другой, в котором доступны
макросы &ПсевдонимДля и ПереноситьЗначениеПоУмолчанию) — обновите строку с
.ЗависитОт так, чтобы она указывала на существующий тег, содержащий эти символы.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 19ad4104-0619-4d39-80b6-6342afbcab8d

📥 Commits

Reviewing files that changed from the base of the PR and between f7757a8 and 9660a06.

📒 Files selected for processing (7)
  • packagedef
  • src/core/Классы/АннотацияВключенДляOneScript.os
  • src/core/Классы/АннотацияВключенНаОС.os
  • src/core/Классы/АннотацияВыключен.os
  • src/core/Классы/АннотацияВыключенДляOneScript.os
  • src/core/Классы/АннотацияВыключенНаОС.os
  • src/core/Классы/АннотацияТестовыйНабор.os

Comment thread packagedef
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants