The evaluation of a delta_aggregate
begins with the evaluation of the
base_expression
of the delta_aggregate; then that value is used to create
and initialize the anonymous object of the aggregate. The bounds of the
anonymous object of an array_delta_aggregate
and the discriminants (if any)
of the anonymous object of a record_delta_aggregate
are those of the
base_expression
.
If a record_delta_aggregate
is of a specific tagged type, its tag is that
of the specific type; if it is of a class-wide type, its tag is that of the
base_expression.
For a delta_aggregate
, for each discrete_choice
or each subcomponent
associated with a record_subcomponent_associated
,
array_component_association
or array_subcomponent_association
(in the
order given in the enclosing discrete_choice_list
or
subcomponent_association_list
, respectively):
Constraint_Error
is raised if this check fails.
discrete_choice
represents a range):
- the index value is converted to the index type of the array type.
- a check is made that the index value belongs to the index range of the corresponding array part of the anonymous object;
Constraint_Error
is raised if this check fails.- the expression of the
record_subcomponent_association
,array_component_association
orarray_subcomponent_association
is evaluated, converted to the nominal subtype of the associated subcomponent, and assigned to the corresponding subcomponent of the anonymous object.