AI22-0167-1
!standard 4.10(26/5) 26-07-20 AI22-0167-1/02
!class Binding Interpretation 26-07-02
!status work item 26-06-30
!status received 26-06-30
!assigned author Stephen Baird
!submitter Stephen Baird
!priority Low
!difficulty Easy
!qualifier Clarification
!subject T’Class’Image default behavior
Clarify behavior of the default implementation of T’Class’Image.
The example given in AARM 4.10(26.b-26.d/5) correctly includes an apostrophe character (as per qualified expression syntax), but RM 4.10(26/5) incorrectly says nothing about the generation of this character. There is no similar issue with the parentheses, as explained in AARM 4.10(26.d). We want to clarify intent without descending into too much detail. But saying nothing and claiming that the generation of the apostrophe is somehow implicit is not ok.
See !wording.
Modify 4.10(26/5):
For a class-wide type, the default implementation of T'Put_Image generates an image based on qualified expression syntax. Wide_Wide_Put is called with Wide_Wide_Expanded_Name of Arg'Tag{ to produce the subtype_mark of the qualified expression. The apostrophe of the qualified expression is also generated}. Then S'Put_Image is [called]{used to produce the aggregate of the qualified expression}, where S is the specific tagged type identified by Arg'Tag.
We state the overall goal (generate a qualified expression) and then explain how each step relates to that goal. We do not want to overspecify behavior here. As long as the right text ends up in the buffer, the precise sequence of calls used to accomplish this should be up to the implementation. It is not expected that the behavior of any existing compiler would change as a consequence of this AI.
See AARM 4.10(26.c) for an example of generated Image text.
!ACATS test
No change in the generated output is expected, so no new ACATS test needed (assuming there is already a test for this paragraph)..