17.2.2.2 Legality Rules

  1. For an array_delta_aggregate, the discrete_choice shall not be ‘others’.
  2. For an array_delta_aggregate, the dimensionality of the type of the delta_aggregate shall be 1.
  3. For an array_delta_aggregate, the base_expression and each expression in every array_component_association or array_subcomponent_association shall be of a nonlimited type.
  4. For a record_delta_aggregate, no record_subcomponent_choices that consists of only component_selector_names shall be the same or a prefix of another record_subcomponent_choice.
  5. For an array_subcomponent_choice or a record_subcomponent_choice the component_selector_name shall not be a subcomponent that depends on discriminants of an unconstrained record subtype with defaulted discriminants unless its prefix consists of only component_selector_names.

    [Rationale: As a result of this rule, accessing the subcomponent can only lead to a discriminant check failure if the subcomponent was not present in the object denoted by the base_expression, prior to any update.]