CVS difference for ais/ai-00033.txt

Differences between 1.1 and version 1.2
Log of other versions for file ais/ai-00033.txt

--- ais/ai-00033.txt	1998/09/30 00:17:08	1.1
+++ ais/ai-00033.txt	1999/07/29 00:51:01	1.2
@@ -1,8 +1,9 @@
-!standard 07.03.01 (03)                               96-11-16  AI95-00033/04
+!standard 07.03.01 (03)                               99-07-28  AI95-00033/05
 !standard 07.03.01 (04)
 !standard 07.03.01 (05)
 !standard 07.03.01 (06)
 !class binding interpretation 95-06-25
+!status Corrigendum 2000 99-07-28
 !status WG9 approved 96-12-07
 !status ARG approved 11-0-0  96-10-07
 !status work item (letter ballot was 1-8-2) 96-06-05
@@ -13,13 +14,13 @@
 !difficulty Medium
 !subject delayed declaration of inherited primitive subprograms
 
-!summary 96-09-09
+!summary
 
 7.3.1 describes places where additional characteristics of a type become
 revealed.  These rules apply only *immediately* within the declarative
 region in which the type is declared.
 
-!question 95-06-25
+!question
 
 Is the rule given in 7.3.1(6) intended to apply to cases where
 a derived type is declared outside the declarative region in
@@ -58,11 +59,11 @@
 outside the declarative region in which a component type or
 parent type is immediately declared?  (No.)
 
-!recommendation 95-06-25
+!recommendation
 
 (See summary.)
 
-!wording 96-09-09
+!wording
 
 In paragraphs 7.3.1(3,4,5,6) replace wording of the form "within the
 immediate scope of the type" with "immediately within the declarative
@@ -72,7 +73,7 @@
 region as the type from which it inherits additional operations
 and characteristics.
 
-!discussion 96-09-09
+!discussion
 
 The wording of RM95-7.3.1 was inherited from RM83-7.4.2, but by stating
 the rules in terms of the immediate scope of the type this inadvertently
@@ -124,7 +125,81 @@
 to pertain to types declared within the same declarative region as the
 component type or parent type providing the additional operations.
 
-!appendix 95-06-25
+!corrigendum 7.3.1(3)
+
+@drepl
+For a composite type, the characteristics (see 7.3) of the type are
+determined in part by the characteristics of its component types. At the
+place where the composite type is declared, the only characteristics of
+component types used are those characteristics visible at that place. If
+later within the immediate scope of the composite type additional
+characteristics become visible for a component type, then any corresponding
+characteristics become visible for the composite type. Any additional
+predefined operators are implicitly declared at that place.
+@dby
+For a composite type, the characteristics (see 7.3) of the type are
+determined in part by the characteristics of its component types. At the place
+where the composite type is declared, the only characteristics of component
+types used are those characteristics visible at that place. If later immediately
+within the declarative region in which the composite type is declared additional
+characteristics become visible for a component type, then any corresponding
+characteristics become visible for the composite type. Any additional predefined
+operators are implicitly declared at that place.
+
+!corrigendum 7.3.1(4)
+
+@drepl
+The corresponding rule applies to a type defined by a
+@fa<derived_type_definition>, if there is a place within its immediate scope
+where additional characteristics of its parent type become visible.
+@dby
+The corresponding rule applies to a type defined by a
+@fa<derived_type_definition>, if there is a place within the declarative
+region in which the type is declared where additional characteristics of its
+parent type become visible.
+
+!corrigendum 7.3.1(5)
+
+@drepl
+For example, an array type whose component type is limited private
+becomes nonlimited if the full view of the component type is nonlimited and
+visible at some later place within the immediate scope of the array type. In
+such a case, the predefined "=" operator is implicitly declared at that
+place, and assignment is allowed after that place.
+@dby
+For example, an array type whose component type is limited private
+becomes nonlimited if the full view of the component type is nonlimited and
+visible at some later place within the declarative region in which the
+array type is declared. In such a case, the predefined "=" operator is
+implicitly declared at that place, and assignment is allowed after that place.
+
+!corrigendum 7.3.1(6)
+
+@drepl
+Inherited primitive subprograms follow a different rule.  For a
+@fa<derived_type_definition>, each inherited primitive subprogram is implicitly
+declared at the earliest place, if any, within the immediate scope of the
+@fa<type_declaration>, but after the @fa<type_declaration>, where the
+corresponding declaration from the parent is visible. If there is no such place,
+then the inherited subprogram is not declared at all. An inherited subprogram
+that is not declared at all cannot be named in a call and cannot be overridden,
+but for a tagged type, it is possible to dispatch to it.
+@dby
+Inherited primitive subprograms follow a different rule.  For a
+@fa<derived_type_definition>, each inherited primitive subprogram is implicitly
+declared at the earliest place, if any, within the declarative region in which
+the @fa<type_declaration> is declared, but after the @fa<type_declaration>,
+where the corresponding declaration from the parent is visible. If there is no
+such place, then the inherited subprogram is not declared at all. An inherited
+subprogram that is not declared at all cannot be named in a call and cannot be
+overridden, but for a tagged type, it is possible to dispatch to it.
+
+!ACATS test
+
+Create a B-test to insure that additional operators and operations are not
+defined when they are not supposed to be defined.
+
+!appendix
 
 !section 7.3.1(7)
 !section 7.3.1(7)

Questions? Ask the ACAA Technical Agent