The complete context rule is formally given in
8.6. The constant view rule is formally given
in 3.3; the nominal subtype is a property taken
from the target object as described below in Dynamic Semantics.
To be honest: The
properties here include static properties like whether the target_name
is aliased and the nominal subtype of the target_name.
It was too weird to give separate rules for static and dynamic properties
that said almost the same thing.
Use of a target_name
can be erroneous if the variable_nameV is a discriminant-dependent component, and some other constituent
of the expression
modifies the discriminant governing the component V. The assignment
probably would be erroneous anyway, but the use of a target_name
eliminates the possibility that a later evaluation of V raises
an exception before any erroneous execution occurs. See 3.7.2.
My_Complex_Array : array (1 .. Max) of Complex; -- See 3.3.2, 3.8.
-- Square the element in the Count (see 3.3.1) position:
My_Complex_Array (Count) := (Re => @.Re**2 - @.Im**2,
Im => 2.0 * @.Re * @.Im);
-- A target_name can be used multiple times and as a prefix if needed.