CVS difference for ai22s/ai22-0044-1.html

Differences between 1.2 and version 1.3
Log of other versions for file ai22s/ai22-0044-1.html

--- ai22s/ai22-0044-1.html	2022/06/18 04:17:03	1.2
+++ ai22s/ai22-0044-1.html	2022/06/24 04:08:54	1.3
@@ -1,10 +1,10 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0044-1/01</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0044-1/02</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c0{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:0pt;border-right-width:0pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:0pt;border-top-style:solid;background-co
lor:#f0f0f0;border-left-style:solid;border-bottom-width:0pt;width:468pt;border-top-color:#000000;border-bottom-style:solid}
-.c19{border-spacing:0;border-collapse:collapse;margin-right:auto}
-.c17{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
-.c20{height:0pt}
+.c20{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:0pt;border-right-width:0pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:0pt;border-top-style:solid;background-c
olor:#f0f0f0;border-left-style:solid;border-bottom-width:0pt;width:468pt;border-top-color:#000000;border-bottom-style:solid}
+.c16{border-spacing:0;border-collapse:collapse;margin-right:auto}
+.c15{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c18{height:0pt}
 P.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:14pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:normal}
 H2.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:12pt; color:#000000; font-size:14pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; tex
t-align:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.inst{margin-bottom:0; margin-top:0; margin-left:18pt; margin-right:0; padding-top:9pt; color:#000000; font-size:12pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif;line-height:1.15; orphans:2; widows:2; text-align:left; font-weigh
t:400; text-decoration:none; vertical-align:baseline; font-style:normal}
@@ -17,31 +17,33 @@
 SPAN.ntrm{font-family:"Arial","Liberation Sans",sans-serif}
 P.a1{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:26pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:3pt; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; text-align
:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 </style>
-</head><body class="c17"><p class="a1">AI22-0044-1</p>
+</head><body class="c15"><p class="a1">AI22-0044-1</p>
 <p class="head">!standard 4.3.1(17/5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-06-15
-&nbsp;AI22-0044-1/01</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-06-23
+&nbsp;AI22-0044-1/02</p>
 <p class="head">!class binding interpretation 22-06-15</p>
+<p class="head">!status Corrigendum 1-2022 22-06-23</p>
+<p class="head">!status ARG Approved 14-0-1 &nbsp;22-06-23</p>
 <p class="head">!status work item 22-06-15</p>
 <p class="head">!status received 22-03-28</p>
 <p class="head">!priority Low</p>
 <p class="head">!difficulty Easy</p>
 <p class="head">!qualifier Omission</p>
-<p class="head">!subject Aggregate discriminants that do not belong to their subtype</p>
+<p class="head">!subject Aggregate discriminants that do not satisfy predicates</p>
 <h2 class="head">!summary</h2>
 <p class="text">In an aggregate, a static value given for a discriminant that governs one</p>
-<p class="text">or more variant parts needs to satisfy the subtype of the discriminant.</p>
+<p class="text">or more variant parts needs to satisfy the predicates of the discriminant.</p>
 <h2 class="head">!issue</h2>
 
 <p class="txts">In an aggregate, the value of a discriminant that governs one or more variant parts
 has to either be a static expression or an expression with a constrained static nominal subtype. In
-the latter case, there is a check that the value belongs to the subtype. However, there is no
-similar check for a static expression.</p>
+the latter case, there is a check that the value belongs to the subtype and satisfies any
+predicates. However, there is no similar check for a static expression.</p>
 
 <p class="txts">This matters when the subtype of the discriminant has a (static) predicate
 Consider:</p>
 
-<a id="t.cf217df8d730a2ed63eab2c1554be583c875f191"></a><a id="t.0"></a><table class="c19"><tr class="c20"><td class="c0">
+<a id="t.cf217df8d730a2ed63eab2c1554be583c875f191"></a><a id="t.0"></a><table class="c16"><tr class="c18"><td class="c20">
 <p class="codt"><b>subtype</b> Account_Number_Type <b>is</b> Integer<br>
 &nbsp; &nbsp;with Static_Predicate =&gt; Account_Number_Type <b>in</b> 1 .. 9_999;<br>
 <br>
@@ -64,8 +66,8 @@
 satisfied. Thus it appears that this aggregate is legal, assuming all of the needed components are
 included. How do we determine the needed components for this aggregate? (It is illegal.)</p>
 <h2 class="head">!recommendation</h2>
-<p class="text">Require the value to belong to the subtype of the discriminant for a static
-expression that governs a variant.</p>
+<p class="text">Require the value to belong to the subtype and satisfy any static predicates of the
+discriminant for a static expression that governs a variant.</p>
 <h2 class="head">!wording</h2>
 <p class="inst">Modify 4.3.1(17/5):</p>
 
@@ -92,10 +94,36 @@
 and a fielded system would be raising an unexpected exception).</p>
 <h2 class="head">!example</h2>
 <p class="text">(See issue.)</p>
+<h2 class="head">!corrigendum 4.3.1(17/5)</h2>
+<p class="text">@drepl</p>
+<p class="text">For a @fa{record_aggregate} or @fa{extension_aggregate}, if a</p>
+<p class="text">@fa{variant_part} @i{P} is nested within a @fa{variant} @i{V} that is not</p>
+<p class="text">selected by the discriminant value governing the @fa{variant_part} enclosing</p>
+<p class="text">@i{V}, then there is no restriction on the discriminant governing @i{P}.</p>
+<p class="text">Otherwise, the value of the discriminant that governs @i{P} shall be given by</p>
+<p class="text">a static expression, or by a nonstatic expression having a constrained static</p>
+<p class="text">nominal subtype. In this latter case of a nonstatic expression, there shall be</p>
+<p class="text">exactly one @fa{discrete_choice_list} of @i{P} that covers each value that</p>
+<p class="text">belongs to the nominal subtype and satisfies the predicates of the subtype,</p>
+<p class="text">and there shall be at least one such value.</p>
+<p class="text">@dby</p>
+<p class="text">For a @fa{record_aggregate} or @fa{extension_aggregate}, if a</p>
+<p class="text">@fa{variant_part} @i{P} is nested within a @fa{variant} @i{V} that is not</p>
+<p class="text">selected by the discriminant value governing the @fa{variant_part} enclosing</p>
+<p class="text">@i{V}, then there is no restriction on the discriminant governing @i{P}.</p>
+<p class="text">Otherwise, the value of the discriminant that governs @i{P} shall be given by</p>
+<p class="text">a static expression, or by a nonstatic expression having a constrained static</p>
+<p class="text">nominal subtype. There shall be</p>
+<p class="text">exactly one @fa{discrete_choice_list} of @i{P} that covers every possible value of
+the expression, which in the case of a nonstatic expression includes each value that</p>
+<p class="text">belongs to the nominal subtype and satisfies the predicates of the subtype,</p>
+<p class="txts">and there shall be at least one such value.</p>
+
+
 <h2 class="head">!ACATS test</h2>
 
 <p class="text">An ACATS B-Test should be constructed to check that this new rule is enforced, both
-for record aggregates and for extension aggregates..</p>
+for record aggregates and for extension aggregates.</p>
 <h2 class="head">!appendix</h2>
 
 

Questions? Ask the ACAA Technical Agent