Version 1.3 of ais/ai-00408.txt
!standard 8.3 (23) 05-02-26 AI95-00408/02
!standard 8.2 (10)
!class amendment 05-02-07
!status Amendment 200Y 05-02-26
!status ARG Approved 8-0-2 05-02-12
!status work item 05-02-07
!status received 05-02-07
!priority High
!difficulty Easy
!subject Visibility for attribute_definition_clauses
!summary
(See proposal.)
!problem
The definition of visibility for attribute_definition_clauses in AI-195
is flawed. It is constructed by analogy with declarations, but the visibility
of declarations has plenty of oddities related to homographs, hiding, use
clauses, etc.
!proposal
Define the scope of attribute_definition_clauses by analogy with declarations,
because the definition of scope doesn't have the complexity of visibility. Then
define visibility of attribute_definition_clauses using a special rule.
!wording
Add after 8.2(10):
The scope of an attribute_definition_clause is identical to the scope of a
declaration that would occur at the point of the attribute_definition_clause.
Replace the paragraph added after 8.3(23) by AI-195 with:
An attribute_definition_clause is visible everywhere within its scope.
!discussion
(See proposal.)
!example
See AI-195 for examples.
!corrigendum 8.2(10)
Insert after the paragraph:
The scope of a declaration always contains the immediate scope of the
declaration. In addition, for a given declaration that occurs immediately
within the visible part of an outer declaration, or is a public child of an
outer declaration, the scope of the given declaration extends to the end of the
scope of the outer declaration, except that the scope of a library_item
includes only its semantic dependents.
the new paragraph:
The scope of an attribute_definition_clause is identical to the scope of a
declaration that would occur at the point of the
attribute_definition_clause.
!corrigendum 8.3(23)
Insert after the paragraph:
- A declaration is also hidden from direct visibility where hidden from
all visibility.
the new paragraph:
An attribute_definition_clause is visible everywhere within its scope.
!ACATS test
!appendix
From: Thomas Quinot
Sent: Wednesday, March 9, 2005 11:58 AM
AI-195 inserts the following clause after 8.3(23):
® An attribute_definition_clause is visible at a place if a declaration
at the point of the attribute_definition_clause would be immediately
visible at the place. ¯
This seems a little odd to me. What would seem intuitively reasonable
would be:
® An attribute_definition_clause is visible at a place if a declaration
at the point of the attribute_definition_clause would be
visible at the place. ¯
Is an attribute_definition_clause intended to be visible at places where
a declaration at the point of the attribute_definition_clause would be
visible, but not immediately visible?
If so, how can this be derived from the language of the AI?
If not, what is the rationale behind making the attribute definition
clause not visible at such places?
*************************************************************
From: Randy Brukardt
Sent: Wednesday, March 9, 2005 1:12 PM
This wording was noted during review, and it was changed by AI-408,
discussed and approved at the recent Paris ARG meeting.
*************************************************************
Questions? Ask the ACAA Technical Agent