Version 1.1 of ai12s/ai12-0203-1.txt

Unformatted version of ai12s/ai12-0203-1.txt version 1.1
Other versions for file ai12s/ai12-0203-1.txt

!standard 4.1.5(5.1/4)          15-10-06 AI12-0203-1/01
!standard 4.1.5(7/3)
!class presentation 16-10-06
!status work item 16-10-06
!status received 16-09-08
!priority Low
!difficulty Easy
!qualifier Clarification
!subject Overriding a nonoverriddable aspect
!summary
Clarify 4.1.5(7/3).
!question
4.1.5(5.1/4) says:
The Implicit_Dereference aspect is nonoverridable (see 13.1.1).
while 4.1.5(7/3) starts:
Given a reference type T, the Implicit_Dereference aspect is inherited by descendants of type T if not overridden.
Since the aspect can't be overridden, why the if not overridden above?
!recommendation
A nonoverridable aspect can have a confirming aspect value specified, and that is the case that have to be covered by the 4.1.5(7/3) sentence. A clarification is suggested.
(See Summary.)
!wording
Modify 4.1.5(7/3):
Given a reference type T, the Implicit_Dereference aspect is inherited by descendants of type T if not overridden{ (which is only permitted if confirming)}. If a descendant type constrains the value of the reference discriminant of T by a new discriminant, that new discriminant is the reference discriminant of the descendant. Redundant[If the descendant type constrains the value of the reference discriminant of T by an expression other than the name of a new discriminant, a generalized_reference that identifies an object of the descendant type denotes the object or subprogram designated by the value of this constraining expression.]
!discussion
(See !recommendation.)
!ASIS
No ASIS effect.
!ACATS test
No ACATS test needed.
!appendix

The original issue was raised privately by Steve Baird; another AdaCore
person independently raised the issue a few days later. The wording was
suggested by Tucker Taft.

****************************************************************

Questions? Ask the ACAA Technical Agent