J3/02-308r1 Date: November 13, 2002 To: J3 From: Rob James Subject: Specifying "private" in an extends clause Introduction ------------ If a parent component is specified as private in an extends clause, what is the effect? This is never explained in the normative text of the Committee Draft. Given the example in C.1.3, it appears that the parent component and all components inheritance associated with it are private in the resulting type. This is never said anywhere in the normative text. Even if this is fixed, there is the problem of type bound procedures. Are these all private in the resulting type unless they are overridden and declared to be public? If this is the case, and if a type bound procedure that was declared as public in the parent type is not overridden and declared to be public in the child type, then this makes the type bound procedure private in the child type, which is exactly what page 55, line 18 was trying to prevent ("If the inherited binding is PUBLIC then the overriding binding shall not be PRIVATE."). In light of the fact that this feature is very poorly explained, maybe it would be best to remove it from this revision of Fortran. Proposed Edits -------------- Page and line numbers refer to the Committee Draft. [42:1] Remove "[ ::]" from the syntax rule. [408:9] Remove "the parent component or". [433:8] Remove "public ::" from the extends clause. [433:14-17] Remove these lines. [433:23] Remove this line. [433:33] Replace "," with ")". [433:33] Remove "&". [433:34-36] Remove these lines.