An
aggregate combines
component values into a composite value of an array type, record type,
or record extension.
For the evaluation of an
aggregate,
an anonymous object is created and values for the components or ancestor
part are obtained (as described in the subsequent subclause for each
kind of the
aggregate) and assigned into the
corresponding components or ancestor part of the anonymous object.
Obtaining
the values and the assignments occur in an arbitrary order. The value
of the
aggregate is the value of this object.
If an
aggregate
is of a tagged type, a check is made that its value belongs to the first
subtype of the type.
Constraint_Error is raised if
this check fails.