CVS difference for ai12s/ai12-0086-1.txt
--- ai12s/ai12-0086-1.txt 2015/01/30 05:23:09 1.3
+++ ai12s/ai12-0086-1.txt 2015/07/14 02:29:41 1.4
@@ -1,6 +1,7 @@
-!standard 4.3.1(17/3) 15-01-28 AI12-0086-1/03
+!standard 4.3.1(17/3) 15-07-13 AI12-0086-1/04
!standard 4.3.1(19/3)
!class Amendment 13-10-30
+!status ARG Approved 7-1-1 15-06-28
!status Promising (9-0-1) 15-01-28
!status work item 13-10-30
!status received 13-08-22
@@ -68,15 +69,19 @@
with
- The value of a discriminant that governs a variant_part P shall be
- given by a static expression, or by a nonstatic expression having a
- constrained static nominal subtype, unless P is nested within a
- variant V that is not selected by the discriminant value governing
- the variant_part enclosing V. In the case of a nonstatic expression,
- there shall be exactly one discrete_choice_list of P that covers
- each value that belongs to the nominal subtype and satisfies the
- predicates of the subtype, and there shall be at least one such value.
+ If a variant_part P is nested within a variant V that is not selected by
+ the discriminant value governing the variant_part enclosing V, then there
+ is no restriction on the discriminant governing P. Otherwise, the value of
+ the discriminant that governs P shall be given by a static expression, or
+ by a nonstatic expression having a constrained static nominal subtype. In
+ this latter case of a nonstatic expression, there shall be exactly one
+ discrete_choice_list of P that covers each value that belongs to the
+ nominal subtype and satisfies the predicates of the subtype, and there
+ shall be at least one such value.
+ AARM Ramification: This means that in the nonstatic value case, the (static)
+ subtype cannot have a null range.
+
Append to the end of 4.3.1(19):
If the value of a discriminant that governs a selected variant_part
@@ -85,7 +90,8 @@
of the expression, then Constraint_Error is raised.
AARM Ramification: In this case, the value of the discriminant is
- outside the base range of its type, or is an invalid representation.
+ outside the base range of its type, does not satisfy the (static)
+ predicates of the subtype, or is an invalid representation.
This is a rule similar to that used for case statements.
!discussion
Questions? Ask the ACAA Technical Agent