Справочник по Ada (Ada 2022)
H.4.1 Аспект No_Controlled_Parts
Статическая семантика
Для типа может быть указан следующий тип аспекта, связанный с типом, и операциональный:
No_Controlled_Parts
Тип этого аспекта — Boolean. Если True, то тип и все его потомки не должны иметь каких-либо управляемых частей. Если указано, значение выражения должно быть статическим. Если не указано, значение этого аспекта — False.
Аспект No_Controlled_Parts является неизменяемым (см. 13.1.1).
Правила легальности
Если для типа No_Controlled_Parts имеет значение True, то ни один компонент типа не должен иметь управляемую часть, и сам тип не должен быть управляемым. Для целей этого правила тип имеет управляемую часть, если его полный тип имеет управляемую часть; это применяется рекурсивно. В дополнение к местам, где обычно применяются правила легальности (см. 12.3), это правило также применяется в частях сведений об экземпляре генерического блока.
При применении вышеуказанного правила внутри генерического тела G или внутри тела генерического блока, объявленного в области объявления генерического блока G, генерический формальный частный тип G и генерический формальный производный тип G, чьим предком является помеченный тип, у которого аспект No_Controlled_Parts имеет значение False, считаются имеющими управляемую часть.