Repository navigation
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk | ⚪ Minimal · up to
|
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | Docstring coverage is 13.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 15 functions across 7 files. | Write docstrings for the functions missing them to satisfy the coverage threshold. |
✅ Passed checks (4 passed)
-
Check name Status Explanation Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled. Title check ✅ Passed The title clearly describes the primary change: cached ВычислитьandВыполнитьexpressions no longer depend on the number of global contexts.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.
✨ Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Autopilot is currently an internal CodeRabbit preview.
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.
Comment @coderabbitai help to get the list of available commands.
|
Внешние компоненты, которые добавляют глобальный скоуп ривносят столько адовых ошибок, что мы просто отказались их поддерживать. На эту тему тут уже заведено три или больше issues. Если по простому, то добавление контекстов в рантайме дает очень и очень неочевидные баги. Иными словами, я боюсь это трогать и вливать. Надо найти все старые issues с этими же проблемами и смотреть в т.ч. и те тестовые ситуации |
|
Нашел старые: #344 и #911 (к ним привязан #804). Там компонента с глобальным контекстом подключалась в Прогнал их сценарии на develop и на этой ветке с тестовой компонентой с Если нужно, добавлю эти сценарии в тесты: класс с |
e1b042e to
c71b377
Compare
|
Добавил эти сценарии в тесты: в тестовой компоненте теперь есть класс с |
c71b377 to
9224118
Compare
|
Есть еще issue #1000 тоже связанный с порядком добавления глобальных скоупов. |
С этим PR он не связан. #1000 про порядок выполнения тел модулей библиотеки: |
Скомпилированное выражение связывало области по номеру в списке кадра, где сначала идут глобальные контексты, а за ними область модуля. После ПодключитьВнешнююКомпоненту с глобальным контекстом номера сдвигались, и выражение из кэша читало компоненту вместо модуля или падало с ArgumentOutOfRangeException. Глобальные контексты теперь связываются напрямую, область модуля и вложенных вычислений - по номеру с конца. В тестовую компоненту добавлен глобальный контекст, а в tests - сценарии из EvilBeaver#344 и EvilBeaver#911 и подключение компоненты во время работы. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9224118 to
8135c04
Compare
|
There was a problem hiding this comment.
Мне кажется норм. Я бы попросил еще кого-то взглянуть, страшновато трогать это место. @Mr-Rm ?

0 New Issues
2 Fixed Issues
0 Accepted Issues
No data about coverage (35.10% Estimated after merge)
Вычислить/Выполнитькэшируют скомпилированное выражение, а оно связывало области по номеру в списке кадра: сначала глобальные контексты, за ними область модуля и вложенных вычислений.ПодключитьВнешнююКомпонентус[GlobalContext]добавляет в этот список контекст, номера сдвигаются, и выражение из кэша вместо переменной или метода модуля берет свойство/метод компоненты или падает сArgumentOutOfRangeException. Воспроизводится и в одном потоке:Глобальные контексты теперь связываются с выражением напрямую, а область модуля и вложенных вычислений — по номеру с конца списка, который от числа глобальных контекстов не зависит.
Тест
EvalScopesTestsв Core.Tests, аtests/global-context-addin.osпрогоняет сценарии из #344 и #911 и подключение во время работы с тестовой компонентой, которая теперь добавляет глобальный контекст.🤖 Generated with Claude Code
Summary by CodeRabbit