CVS difference for ais/ai-00098.txt

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

--- ais/ai-00098.txt	1998/09/30 00:17:16	1.1
+++ ais/ai-00098.txt	1999/06/26 01:11:13	1.2
@@ -1,5 +1,6 @@
-!standard 12.05    (08)                               97-11-14  AI95-00098/01
+!standard 12.05    (08)                               99-06-24  AI95-00098/02
 !class binding interpretation 95-10-12
+!status Corrigendum 2000 99-05-25
 !status WG9 Approved  97-11-14
 !status ARG approved (6-0-1) subject to editorial review 97-04-11
 !status work item 95-10-13
@@ -8,12 +9,12 @@
 !difficulty Medium
 !subject unknown_discriminant_parts on generic formal types.
 
-!summary 97-05-08
+!summary
 
 A generic formal type must not have an unknown_discriminant_part,
 unless the type is a composite non-array type.
 
-!question 97-05-08
+!question
 
 12.5(8) (a NOTE) says that "A discriminant_part is allowed only for
 certain kinds of types, and therefore only for certain kinds of generic
@@ -33,11 +34,11 @@
             type Str  (<>) is new String; -- Illegal!
         procedure ....
 
-!recommendation 97-05-08
+!recommendation
 
 (See Summary.)
 
-!wording 97-05-08
+!wording
 
 Remove the first occurrence of "known_" from 3.7(8).
 Change ";" to ".".  The result is:
@@ -47,13 +48,31 @@
 types).  A type declared with a known_discriminant_part is called a
 discriminated type, as is a type that inherits (known) discriminants.
 
-!discussion 97-05-08
+!discussion
 
 The intent is that elementary and array types cannot have discriminant
 parts (known or unknown).
+
+!corrigendum 3.07(8)
+
+@drepl
+A @fa<known_discriminant_part> is only permitted in a declaration for a
+composite type that is not an array type (this includes generic formal
+types); a type declared with a @fa<known_discriminant_part> is called a
+@i<discriminated> type, as is a type that inherits (known) discriminants.
+@dby
+A @fa<discriminant_part> is only permitted in a declaration for a
+composite type that is not an array type (this includes generic formal
+types). A type declared with a @fa<known_discriminant_part> is called a
+@i<discriminated> type, as is a type that inherits (known) discriminants.
+
+!ACATS test
 
-!appendix 95-10-13
+A B-Test is needed to check that unknown discriminant parts cannot be given
+on formal types that don't meet the revised wording.
 
+!appendix
+
 !section 12.5(08)
 !subject Unknown_Discriminant parts on generic formal types.
 !reference RM95-12.5(8)
@@ -178,7 +197,7 @@
 > > Unfortunately, the rule in 3.7(8) only applies to known_discriminant_parts.
 > > 3.7 does not contain any rule restricting the usage of
 > > unknown_discriminant_parts.
-> 
+>
 > Coincidentally, I came across this definitional gap myself just a few
 > days ago.  There doesn't seem to be a rule disallowing an unknown_
 > discriminant_part for arbitrary kinds of formal types.
@@ -186,7 +205,7 @@
 I agree there is a gap.
 
 > However...
-> 
+>
 > > Various syntax rules usually do the job, but for generic formal types,
 > > the syntax allows unknown_discriminant_parts.  Therefore, are the following
 > > legal?  If not, why not?
@@ -196,11 +215,11 @@
 > >             Type Flt  (<>) Is Digits (<>);
 > >             Type Str  (<>) Is New String;
 > >         Procedure ....
-> 
+>
 > I don't believe an unknown_discriminant_part should be permitted for
 > these, at least in the first two of the above examples.  There is
 > strong evidence that the intent is that elementary types cannot have
-> unknown discriminants.  
+> unknown discriminants.
 
 That is for sure.  I agree the first two should be illegal.
 There also seems no compelling reason to allow the third
@@ -216,7 +235,7 @@
 > (since they have unknown discriminants), that's in contradiction to
 > the parenthetical assertion.  There also wouldn't seem to be much
 > practical use for such types, even if they were allowed.
-> 
+>
 > In the case of a type such as Str it's somewhat less clear to me whether
 > this should be disallowed.  I don't see any big problem with allowing
 > it and it might conceivably be of some use (well probably marginal
@@ -240,7 +259,7 @@
 > can only be given for partial views.  That's what makes the most
 > sense to me.
 
-As mentioned above, I think we should allow (<>) for formal derived 
+As mentioned above, I think we should allow (<>) for formal derived
 types where the ancestor has discriminants, or is tagged.
 
 > Perhaps a restriction against giving (<>) for nonprivate formal types

Questions? Ask the ACAA Technical Agent