AI22-0070-1
!standard 4.3.3(32/6) 23-04-03 AI22-0070-1/02
!class presentation 23-03-23
!status Amendment 1-2022 23-03-30
!status WG9 Approved 23-06-13
!status ARG Approved 12-0-0 23-03-30
!status work item 23-03-23
!status received 23-03-23
!submitter Randall Brukardt, Project Editor
!priority Low
!difficulty Easy
!qualifier Clarification
!subject Cannot use might, might use can
ISO Standard wording cannot use "might", it might use "can". Also, “may” should be used instead of “can” for a permission.
JTC1 Directives, Part 2 says that the word "might" is not allowed in wording, "can" (possibility) or "may" (permission) should be used instead. One of the wording changes adopted right after the completion of Ada 2022 uses "might" and needs to be corrected.
(See Summary.)
Modify 4.3.3(32/6):
When evaluating iterated_component_associations for an array_aggregate that contains only iterated_component_associations with iterator_specifications, the first step of evaluating an iterated_component_association {may}[can] be omitted if the implementation can determine the number of values by some other means. [Redundant: Such "other means" {can}[might] include making use of an applicable index constraint or the Length function of a suitable container type.]
AI22-0006-1 is WG 9 approved, and thus should not be changed. Thus we need a new AI to correct the wording changes.
AI22-0031-1 had a similar mistake, but that one was caught in Editorial Review just before sending to WG 9. So we were able to correct that AI before it was frozen.
When reviewing this AI, it was noted that the primary wording of this Implementation Permission used “can” rather than the correct “may”. We also corrected that mistake.
@drepl
When evaluating @fa{iterated_component_association}s for an
@fa{array_aggregate} that contains only @fa{iterated_component_association}s
with @fa{iterator_specification}s, the first step of evaluating an
@fa{iterated_component_association} can be omitted if the implementation can
determine the maximum number of values by some other means.
Such "other means" might include making use of an applicable index constraint
or the Length function of a suitable container type.
@dby
When evaluating @fa{iterated_component_association}s for an
@fa{array_aggregate} that contains only @fa{iterated_component_association}s
with @fa{iterator_specification}s, the first step of evaluating an
@fa{iterated_component_association} may be omitted if the implementation can
determine the maximum number of values by some other means.
Such "other means" can include making use of an applicable index constraint
or the Length function of a suitable container type.
No ACATS tests needed for wording changes that don't change the meaning.