CVS difference for ai12s/ai12-0053-1.txt

Differences between 1.1 and version 1.2
Log of other versions for file ai12s/ai12-0053-1.txt

--- ai12s/ai12-0053-1.txt	2012/12/29 02:40:39	1.1
+++ ai12s/ai12-0053-1.txt	2012/12/29 02:58:59	1.2
@@ -1,6 +1,9 @@
-!standard 3.2.4(31/3)                                12-12-08    AI12-0053-1/01
+!standard 3.2.4(31/3)                                12-12-27    AI12-0053-1/02
 !standard 4.6(57/3)
 !class binding interpretation
+!status No Action 10-0-1  12-12-08
+!status work item 12-12-08
+!status received 12-12-07
 !priority High
 !difficulty Medium
 !qualifier Error
@@ -52,8 +55,22 @@
    type Country_Code is new String(1 .. 2)
       with Dynamic_Predicate => (for all E of Country_Code => (E in 'A' .. 'Z'));
 
-In order to preserve compatibility, it is important that this kind of change be
-possible without changing the exception that is raised on failure.
+Another case comes up when enumeration literals are added to an existing type.
+For instance, imagine that a program contains the following declarations:
+
+   type Enum is (A, B, C, D);
+   subtype Sub is Enum range A .. C;
+
+Now, we discover that we need to add a new literal in the middle of the
+enumeration, but that Sub should not include that literal. We can use a
+static predicate to keep the semantics of Sub the same:
+
+   type Enum is (A, B, E, C, D);
+   subtype Sub is Enum
+      with Static_Predicate => Sub in A | B | C;
+
+In order to preserve compatibility, it is important that these kinds of changes
+be possible without changing the exception that is raised on failure.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent