Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

3.11.1 Завершение объявлений

Объявления иногда состоят из двух частей. Объявление, требующее второй части, называется требующим завершения. Вторая часть называется завершением объявления (и объявленного сущности) и представляет собой другое объявление, тело или директиву. Тело – это тело, тело_входной_точки или переименование-как-тело (см. 8.5.4).

Правила разрешения имён

Конструкцию, которая может быть завершением, интерпретируют как завершение предыдущего объявления только если:
  • Объявление и завершение находятся в одной декларативной области;
  • Определяющее имя или имя_программы_определения в завершении совпадают с именем в объявлении или, в случае директивы, директива применяется к объявлению;
  • Если объявление перегружаемо, то завершение имеет профиль, соответствующий типу, или является директивой.

Правила корректности

Неявное объявление не должно иметь завершения. Для любого явного объявления, которое требует завершения, должно быть соответствующее явное завершение.
Для данного объявления допускается не более одного завершения. Дополнительные требования к завершениям приведены в определении каждого вида завершения.
Тип считается полностью определённым в позиции, которая находится после его полного определения (если оно есть) и после того, как все его подкомпоненты полностью определены. Тип должен быть полностью определён до момента его заморозки (см. 13.14 и 7.3).
ПРИМЕЧАНИЯ
91 В принципе, завершения допустимы для любого вида явного объявления. Однако для некоторых типов объявлений единственным допустимым завершением является директива Import, и реализации не обязаны поддерживать директиву Import для каждого типа сущности.
92 Существуют правила, которые предотвращают преждевременное использование объявлений, имеющих соответствующее завершение. Проверка Elaboration_Checks раздела 3.11 предотвращает такие использования во время выполнения для подпрограмм, защищённых операций, задач и генерических единиц. Правила раздела 13.14 «Правила заморозки» предотвращают преждевременное использование других сущностей, таких как частные типы и отложенные константы во время компиляции.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API