CVS difference for ai05s/ai05-0027-1.txt

Differences between 1.4 and version 1.5
Log of other versions for file ai05s/ai05-0027-1.txt

--- ai05s/ai05-0027-1.txt	2007/10/31 02:24:49	1.4
+++ ai05s/ai05-0027-1.txt	2007/12/13 04:39:35	1.5
@@ -1,8 +1,9 @@
-!standard A.18.2(239/2)                                   07-10-28    AI05-0027-1/03
+!standard A.18.2(239/2)                                   07-11-20    AI05-0027-1/03
 !standard A.18.3(152/2)
 !standard A.18.4(75/2)
 !standard A.18.7(96/2)
 !class binding interpretation 06-11-13
+!status ARG Approved  9-0-0  06-11-09
 !status work item 06-11-13
 !status received 06-11-03
 !priority Medium
@@ -12,10 +13,9 @@
 
 !summary
 
-If an operation is passed a container object that has been finalized,
-it is a bounded error.  If the operation is read-only, then either
-the operation proceeds as though the container were empty, or
-Constraint_Error or Program_Error is raised.
+It is a bounded error if an operation is passed a container object that has been
+finalized. If the operation is read-only, then either the operation proceeds as
+though the container were empty, or Constraint_Error or Program_Error is raised.
 
 If a finalized container is passed to an operation that would update
 the container, Constraint_Error or Program_Error is raised.
@@ -28,13 +28,16 @@
 
 (See Summary.)
 
+!wording
+
 Add the following after A.18.2(239):
 
-   It is a bounded error to call any subprogram declared in Containers.Vectors
-   when the associated container has been finalized.  If the operation takes 
-   Container as an IN OUT parameter, then it raises Constraint_Error or 
-   Program_Error.  Otherwise, the operation either proceeds as it would 
-   for an empty container, or it raises Constraint_Error or Program_Error.
+   It is a bounded error to call any subprogram declared in the visible part of
+   Containers.Vectors when the associated container has been finalized.
+   If the operation takes Container as an IN OUT parameter, then it raises
+   Constraint_Error or Program_Error. Otherwise, the operation either proceeds
+   as it would for an empty container, or it raises Constraint_Error
+   or Program_Error.
 
 Make corresponding additions to all other container packages,
 after A.18.3(152), after A.18.4(75) [needs "Bounded Error" label 
@@ -62,7 +65,7 @@
 
 We have suggesting adding this paragraph *before* the discussion of ambiguous
 cursors, as we want that discussion to flow right into the discussion of
-invalid curaors.
+invalid cursors.
 
 !example
 
@@ -84,7 +87,7 @@
 
     package body Pack is
         package Usage_History is new Ada.Containers.Vectors (...);
-        Finalzation_Usage: Usage_History.Vector;
+        Finalization_Usage: Usage_History.Vector;
 
         procedure Finalize (Object : in out T) is
         begin
@@ -107,11 +110,73 @@
 AI95-00280 for some examples).
 
 
---!corrigendum A.18.2(239/2)
+!corrigendum A.18.2(239/2)
 
+@dinsa
+Calling Merge in an instance of Generic_Sorting with either Source
+or Target not ordered smallest first using the provided generic formal
+"<" operator is a bounded error. Either Program_Error is raised after
+Target is updated as described for Merge, or the operation works as defined.
+@dinst
+It is a bounded error to call any subprogram declared in the visible part of
+Containers.Vectors when the associated container has been finalized.
+If the operation takes Container as an @b<in out> parameter, then it
+raises Constraint_Error or Program_Error. Otherwise, the operation either
+proceeds as it would for an empty container, or it raises Constraint_Error
+or Program_Error.
+
+!corrigendum A.18.3(152/2)
+
+@dinsa
+Calling Merge in an instance of Generic_Sorting with either Source
+or Target not ordered smallest first using the provided generic formal
+"<" operator is a bounded error. Either Program_Error is raised after
+Target is updated as described for Merge, or the operation works as defined.
+@dinst
+It is a bounded error to call any subprogram declared in the visible part of
+Containers.Doubly_Linked_Lists when the associated container has been
+finalized. If the operation takes Container as an @b<in out> parameter,
+then it raises Constraint_Error or Program_Error. Otherwise, the operation
+either proceeds as it would for an empty container, or it raises
+Constraint_Error or Program_Error.
+
+!corrigendum A.18.4(75/2)
+
+@dinsa
+@xindent<Iterate calls Process.@b<all> with a cursor that designates each node
+in Container, starting with the first node and moving the cursor according
+to the successor relation. Program_Error is propagated if Process.@b<all>
+tampers with the cursors of Container. Any exception raised by Process.@b<all>
+is propagated.
+@dinss
+@s8<@i<Bounded Error>>
+
+It is a bounded error to call any subprogram declared in the visible part
+of a map package when the associated container has been finalized. If the
+operation takes Container as an @b<in out> parameter, then it raises
+Constraint_Error or Program_Error. Otherwise, the operation either proceeds
+as it would for an empty container, or it raises Constraint_Error or
+Program_Error.
+
+!corrigendum A.18.7(96/2)
+
+@dinsa
+If Element_Type is unconstrained and definite, then the actual Element
+parameter of Process.@b<all> shall be unconstrained.
+@dinss
+@s8<@i<Bounded Error>>
+
+It is a bounded error to call any subprogram declared in the visible part
+of a set package when the associated container has been finalized.
+If the operation takes Container as an @b<in out> parameter, then it
+raises Constraint_Error or Program_Error. Otherwise, the operation either
+proceeds as it would for an empty container, or it raises Constraint_Error
+or Program_Error.
 
 !ACATS test
 
+An ACATS C-Test could be constructed for this rule, using an code similar
+to the example.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent