Справочник по Ada 2005
4.9.1 Статически совпадающие ограничения и подтипы
Статическая семантика
Ограничение статически совпадает с другим ограничением, если:
- оба являются нулевыми ограничениями;
- оба являются статическими и имеют равные соответствующие границы или значения дискриминантов;
- оба являются нестатическими и получены из одной и той же стадии разработки ограничения указателя_подтипа или из одного и того же вычисления диапазона определения_подтипа_дискретного_типа; или
- оба являются нестатическими и получены из одного и того же объявления_формального_типа.
Подтип статически совпадает с другим подтипом того же типа, если они имеют статически совпадающие ограничения, и, для подтипов доступа, либо оба, либо ни один из них не исключает нуль. Два анонимных подтипа доступа к объекту статически совпадают, если их назначенные подтипы статически совпадают, и либо оба, либо ни один из них не исключают нуль, и либо оба, либо ни один из них не являются доступами к константе. Два анонимных подтипа доступа к подпрограмме статически совпадают, если их назначенные профили соответствуют подтипам, и либо оба, либо ни один из них не исключают нуль.
Два диапазона одного и того же типа статически совпадают, если оба получены из одного и того же вычисления диапазона, или если оба являются статическими и имеют равные соответствующие границы.
Ограничение статически совместимо с скалярным подтипом, если оно статически совпадает с ограничением подтипа, или если оба являются статическими и ограничение совместимо с подтипом. Ограничение статически совместимо с подтипом доступа или составным подтипом, если оно статически совпадает с ограничением подтипа, или если подтип не ограничен. Один подтип статически совместим со вторым подтипом, если ограничение первого статически совместимо со вторым подтипом.