25 June 2000  Page 1 of 1  J3/00-237

Subject: Work on component accessibility From: Van Snyder References: 00-247

1 Introduction

The wording at [49:14-17] is clearer than the wording that attempts to address a similar purpose at [49:5-8]. The restriction against using a structure constructor outside of the module containing its definition if any of the type’s components are private is too strong. It should be OK to use the constructor if private components have default initialization, and it is not overridden.

2 Edits

Edits refer to 00-007r2. Page and line numbers are displayed in the margin. Absent other instructions, a page and line number or line number range implies all of the indicated text is to be replaced by immediately following text, while a page and line number followed by + indicates that immediately following text is to be inserted after the indicated line. Remarks for the editor are noted in the margin, or appear between [ and ] in the text.

[Editor: Replace “If ... component is private” by the following:] 49:5-8 The accessibility of components may be declared explicitly by an access-spec in the datacomponent-def-stmt that defines them. If there is no access-spec in a data-component-def-stmt, then the accessibility of the components it defines is public unless the data-component-part of the type definition contains a PRIVATE statement, in which case the accessibility is private. If a component is public, that component name is accessible via any accessible object or subobject of the type. Otherwise

J3 internal note 49:10+ Integration issue xxx The restriction against using a structure constructor outside of the module containing the type’s definition if any of its components are private is too strong. It should be OK to use the constructor if private components have default initialization, and it is not overridden in the constructor. [Editor: 00-247 addresses the above issue, so don’t bother inserting the note if it passes.]