Version 1.4 of ai22s/ai22-0008-1.txt
!standard 4.3.3(14.1/5) 22-02-03 AI22-0008-1/03
!class binding interpretation 21-11-11
!status Corrigendum 1-2022 22-02-03
!status WG9 Approved 22-10-18
!status ARG Approved 16-0-0 22-02-03
!status work item 21-11-11
!status received 21-11-09
!priority Low
!difficulty Easy
!qualifier Omission
!subject Nominal subtype of a delta aggregate
!summary
We talk about an applicable index constraint rather than a nominal subtype
for a delta aggregate. Specifically, the base expression of a delta aggregate
has the same applicable index constraint as the delta aggregate as a whole.
!issue
4.3.3(14.1/5) says
For the base_expression of a delta_aggregate, if the nominal subtype of
the delta_aggregate is a constrained array subtype, the applicable index
constraint is the constraint of the subtype;
Does a delta aggregate have a nominal subtype? (No.)
!recommendation
(See Summary.)
!wording
Modify 4.3.3(14.1/5):
For the base_expression of a delta_aggregate[, if the nominal subtype of
the delta_aggregate is a constrained array subtype], the applicable index
constraint is [the constraint of the subtype] {that of the delta_aggregate
as a whole, if any};
!discussion
Aggregates generally don't have nominal subtypes, so this bullet is reworded
to avoid using that term.
!corrigendum 4.3.3(14.1/5)
Replace the paragraph:
- For the base_expression of a delta_aggregate, if the
nominal subtype of the delta_aggregate is a constrained array subtype,
the applicable index constraint is the constraint of the subtype;
by:
- For the base_expression of a delta_aggregate,
the applicable index constraint is that of the delta_aggregate
as a whole, if any;
!ACATS test
This rewording shouldn't change the needed ACATS test for this bullet.
!appendix
[Editor's note: From a private thread with many more topics in each message;
only the relevant part is given here.]
From: Jeff Cousins
Sent: Tuesday, November 9, 2021 3:16 AM
4.3.3(14.1/5) – the item being written to can have a nominal subtype, and
maybe the item used as the base expression, but can the delta aggregate
itself?
****************************************************************
From: Tucker Taft
Sent: Tuesday, November 9, 2021 9:18 AM
Not sure what you are asking here...
****************************************************************
From: Jeff Cousins
Sent: Tuesday, November 9, 2021 11:53 AM
4.3.3 (14.1/5) says “... if the nominal subtype of the delta_aggregate ...”
What is the nominal subtype of a delta aggregate? Taking the example from
4.3.4 (27/5), where in the following is a subtype named (other than Integer)?
((0 => 1.0, 1 => 2.0, 2 => 3.0)
with delta Integer(Random * 2.0) => 14.2)
****************************************************************
From: Tucker Taft
Sent: Tuesday, November 9, 2021 12:53 PM
This looks like a bug in the wording. Aggregates generally don't have
"nominal" subtypes. They are one of the few things that don't.
4.3.3(14.1/5) should probably say:
For the base_expression of a delta_aggregate[, if the nominal subtype of
the delta_aggregate is a constrained array subtype], the applicable index
constraint is [the constraint of the subtype] {that of the delta_aggregate
as a whole, if any};
****************************************************************
Questions? Ask the ACAA Technical Agent