Version 1.4 of ais/ai-00408.txt

Unformatted version of ais/ai-00408.txt version 1.4
Other versions for file 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 WG9 Approved 06-06-09
!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:
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