J3/00-276
To: J3
From: Malcolm Cohen
Subject: Issues 17-19
Date: 14th September 2000
1. Introduction
This paper attempts to gather together 00-247 and 00-272.
The crucial insight here is that after the component ordering issues of i/o
and structure constructors is sorted out (by another paper), there is no
reason not to call the "parent thingy" a component.
Note that this paper does not attempt to fix the structure constructor
problems noted in 00-272, and thus does not address issue 211.
2. Edits to 00-007r2
[52:43+] Insert note 4.41a
"Inaccessible components and bindings of the parent type are also
inherited, but they remain inaccessible in the extended type.
Inaccessible entities occur when the type being extended is accessed via
USE association and has a private entity."
{This attempt at clarification may belong in annex C?}
[53:4-6] Replace with
"An object of extended type has a scalar nonpointer nonallocatable
<> with the type and type parameters of the parent
type, consisting of all the components inherited from the parent type.
The name of this component is the parent type name."
{Define the parent component.}
[53:7-16] Delete J3 note 17.
{We now call the parent subobject a component.}
[53:17] Replace "subobject denoted by the parent type name"
with "parent component"
{Use new term.}
[53:20-22] Replace "have neither" with "not have",
delete "nor ... type",
Make the whole thing a note.
{Use our new terminology; make it a note because it is covered by the old
rules in ch14 now that the parent subobject is a component.}
[55:36-37] Replace "component that has the same name as the parent type"
with "parent component".
{Use our new term to improve readability and correctness.}
[55:38-41] Delete J3 note 19.
{The parent subobject is now a component.}
{Note to J3 (not the standard): since 4.5.3.1 says that components of the
immediate base type are included in the extended type, we don't have to
extend the "scope" of a component-name to include extension types. They
are there already, at least when they are accessible.}
[404:26-28] Move to correct alphabetic position, viz [404:29+].
[404:29-] Insert new entry before the "parent type" entry:
"<> (4.5.3.1) The component of an entity of extended
type which corresponds to its inherited portion."
===END