To: J3 J3/16-157 From: Van Snyder Subject: Alternative approaches to UTI 13, UTI 14 Date: 2016 February 03 Reference: 16-007, 16-114 1. Introduction =============== The cause of UTI 13 and UTI 14 is suboptimal description of the new "module accessibility" feature. Instead of describing it in terms of "accessibility of the module" it should be described in terms of "accessibility of identifiers accessed from the module." The description of the default accessibility of an identifier accessed by use association and for which default accessibility is specified indirectly by the name of a module from which it is accessed appearing as the in an should appear in 5.6.1, the only place where that form of access control is described. Alternatively, the new feature could be deleted, since it has very narrow usefulness. 2. Edits ======== [xvii:5 Introduction under "Program units and procedures] Replace "that of" with "the default accessibility of". [92:12-15 5.5.2p3] Replace "An identifier ... otherwise" with "An identifier whose accessibility is not explicitly specified has default accessibility." {The concept the replaced material attempts to describe should be described in 5.6.1, where the only way to declare it appears." [106:33-34 5.6.1p1] Delete "Appearance of a module ... from that module." [106:42+ 5.6.1p1+] Insert a paragraph: "If an identifier is accessed by use association, and the name of any module from which it is accessed appears [as the ](?) in an , its default accessibility is PRIVATE if the in every such is PRIVATE, or PUBLIC if the in any such is PUBLIC. [For such an identifier, this overrides the default accessibility for the module in which it is accessed.](?)" {In light of "entities accessed from a module whose name does not appear in any in the module" at [106:35-36], the last sentence might not be needed.} Delete UTI 13 and UTI 14 if this adequately addresses the problem they describe. 3. Alternative edits ==================== [xvii:4-6 Introduction under "Program units and procedures] Delete "In a module ... using module." [92:12-15 5.5.2p3] Replace "An identifier ... otherwise" with "An identifier whose accessibility is not explicitly specified has default accessibility." [106:27 C569] Delete "module," [106:29-30 C570] Delete C570. [106:29-31 C571] Delete C571. [106:33 5.6.1p1] Delete "that is not a module name". [106:33-34 5.6.1p1] Delete "Appearance of a module ... from that module." [106:36 5.6.1p1] Replace "a module" with "other modules". Delete "whose name ... in the module". [107 NOTE 5.26] Delete NOTE 5.26. Delete UTI 13 and UTI 14 if this adequately addresses the problem they describe.