1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

[Новое требование]: [Может быть неактуальным] Переработка модульности и связанных с...

Предстоит сделать
Владелец
Создано  
05.03.2025

импортом/экспортом частей кода

Новые требования предоставляют какие возможности?

Переархитектура стала необходимой для повышения модульности, а также для предотвращения непредвиденного поведения и отчетов об ошибках, связанных с импортом (строго связано с модульностью) или управлением пакетами. Описание этой области динамически меняется в последнее время, что делает поддержание кода сложным из-за применения временных исправлений, и требуемые изменения в обновленной спецификации трудно внедрить в ранее введенную структуру. Ранее мы не выделяли ресурсы на это из-за других более приоритетных задач, но теперь мы хотим продолжить эту работу, видя её необходимость.ОБНОВЛЕНИЕ (11.06.2024): Реализация импорта/экспорта требует пересмотра. Причина заключается в том, что часть стандарта, относящаяся к этому вопросу, несколько раз менялась во время разработки, и не только постоянно добавлялись новые части, но также менялись правила именования (например, псевдоним пространства имен: *), а также были удалены некоторые разделы, поддержка которых была прекращена. По этой причине можно использовать другой подход в коде, так как было применено множество временных решений параллельно (очень запутанно), которые следует объединить и унифицировать для улучшения понимаемости и поддерживаемости кода. В настоящее время проводятся исправления, однако большинство краевых случаев уже раскрыты, и соответствующий раздел стандарта можно считать окончательным, поэтому эта проблема готова к началу работы.Примечание: Перед началом рефакторинга импорта/экспорта важно указать в описании, что будет изменено и почему, как часть документации дизайна. В ближайшее время это описание должно быть расширено этими данными. Что следует учитывать при рефакторинге, но пока не реализовано:

  • Внутренний модуль пакета может непосредственно обращаться ко всем верхнеуровневым сущностям, объявленным во всех модулях, составляющих пакет.
    • Имя, объявленное на уровне пакета (область видимости уровня пакета), доступно везде внутри всего пакета. Имя можно использовать в других пакетах или модулях, если оно экспортировано (#17665).
  • Внутренний модификатор доступа.
    • Модификатор внутреннего типа указывает, что член класса, конструктор или член интерфейса доступен только внутри своего компилирующегося модуля (#16088).
  • Одиночный директивный экспорт.
    • Недавно добавленный в стандарт, он ещё не поддерживается (#17732).
  • Поддержка нового синтаксиса по умолчанию для импорта ([ArkTS]).
    • На данный момент компилятор поддерживает следующий синтаксис по умолчанию для импорта: import ident from ". . .", но не поддерживает формат import { default as ident } from ". . ." (#17739).
  • Директивный экспорт с псевдонимом работает некорректно.
    • Импорт конкретной декларации или всех деклараций из модуля возможен. При переэкспорте новые имена могут быть присвоены.Эта операция аналогична импорту, но в противоположном направлении. (#16804)
  • [ArkTs] Исправление в директиве экспорта типа: поддержка псевдонима (#17353) Обновление (2024. 06. 19.)
    Краткое описание текущей реализации: https://rnd-gitlab-msc.huawei.com/rus-os-team/virtual-machines-and-tools/panda/-/snippets/11321GЗ: #15200

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
enhancement
label.
GitLife Service Account добавлено
 
waiting_for_assign
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openharmony-arkcompiler_ets_frontend.git
git@api.gitlife.ru:oschina-mirror/openharmony-arkcompiler_ets_frontend.git
oschina-mirror
openharmony-arkcompiler_ets_frontend
openharmony-arkcompiler_ets_frontend