Syntax:
pragma Type_Invariant_Class ([Entity =>] type_LOCAL_NAME, [Check =>] EXPRESSION);
The Type_Invariant_Class
pragma is intended to be an exact
replacement for the language-defined Type_Invariant'Class
aspect, and shares its restrictions and semantics.
Note: This pragma is called Type_Invariant_Class
rather than
Type_Invariant'Class
because the latter would not be strictly
conforming to the allowed syntax for pragmas. The motivation
for providing pragmas equivalent to the aspects is to allow a program
to be written using the pragmas, and then compiled if necessary
using an Ada compiler that does not recognize the pragmas or
aspects, but is prepared to ignore the pragmas. The assertion
policy that controls this pragma is Type_Invariant'Class
,
not Type_Invariant_Class
.