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

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

--- ai22s/ai22-0024-1.html	2022/09/03 05:35:45	1.1
+++ ai22s/ai22-0024-1.html	2022/09/10 09:05:14	1.2
@@ -1,11 +1,17 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0024-1/02</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0024-1/03</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c25{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}
-.c20{border-spacing:0;border-collapse:collapse;margin-right:auto}
-.c14{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}
-.c28{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
-.c3{color:inherit;text-decoration:inherit}
+.c24{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}
+.c2{background-color:#f0f0f0;font-family:"Consolas";color:#444444;font-weight:400}
+.c29{border-spacing:0;border-collapse:collapse;margin-right:auto}
+.c17{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}
+.c10{background-color:#f0f0f0;font-family:"Consolas";color:#888888;font-weight:400}
+.c5{background-color:#f0f0f0;font-family:"Consolas";color:#444444;font-weight:700}
+.c1{background-color:#f0f0f0;font-family:"Consolas";color:#880000;font-weight:400}
+.c9{background-color:#f0f0f0;font-family:"Consolas";color:#880000;font-weight:700}
+.c30{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c4{color:inherit;text-decoration:inherit}
+.c20{border:1px solid black;margin:5px}
 .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}
@@ -22,14 +28,18 @@
 P.time{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:9pt; padding-bottom:9pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:italic}
 SPAN.name{font-family:"Lucida Calligraphy",cursive; font-style:normal}
 SPAN.ins{color:#005500}
-P.a4{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:26pt;font-family:"Arial","Liberation Sans",sans-serif; orphans:2; widows:2; padding-top:0pt; padding-bottom:3pt; line-height:1.15; page-break-after:avoid; text-align
:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
-SPAN.a29{text-decoration-skip-ink:none; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline}
+P.a4{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}
+SPAN.a15{background-color:#f0f0f0; font-family:"Consolas"; color:#888888; font-weight:400; text-decoration:none; vertical-align:baseline; font-size:11pt; font-style:normal}
+SPAN.a16{background-color:#f0f0f0; font-family:"Consolas"; color:#888888; font-weight:400; font-style:italic}
+SPAN.a30{text-decoration-skip-ink:none; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline}
 </style>
-</head><body class="c28 doc-content"><p class="a4">AI22-0024-1</p>
+</head><body class="c30 doc-content"><p class="a4">AI22-0024-1</p>
 <p class="head">!standard 3.9.3(7/5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-08-30 &nbsp;AI22-0024-1/02</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-09-09 &nbsp;AI22-0024-1/03</p>
 <p class="head">!standard 4.1.3(9.2/3)</p>
 <p class="head">!class binding interpretation 22-01-20</p>
+<p class="head">!status Corrigendum 1-2022 &nbsp;22-09-09</p>
+<p class="head">!status ARG Approved &nbsp;8-0-1 &nbsp;22-09-09</p>
 <p class="head">!status work item 22-01-20</p>
 <p class="head">!status received 21-04-28</p>
 <p class="head">!priority Low</p>
@@ -49,8 +59,8 @@
 <h2 class="head">!issue</h2>
 <p class="text">Following is a distillation of another ACATS test that gets different results </p>
 <p class="text">in different Ada 2012 compilers:</p>
-<a id="t.0539a8d78e6c3da25e277d06a9eed551b6241ac7"></a><a id="t.0"></a><table class="c20"><tr class="c18"></tr></table><p class="text">&nbsp;</p>
-<a id="t.0a83fcf6f0060650be3d1940649573282238d897"></a><a id="t.1"></a><table class="c20"><tr class="c18"><td class="c25">
+<a id="t.0539a8d78e6c3da25e277d06a9eed551b6241ac7"></a><a id="t.0"></a><table class="c29"><tr class="c18"></tr></table><p class="text">&nbsp;</p>
+<a id="t.0a83fcf6f0060650be3d1940649573282238d897"></a><a id="t.1"></a><table class="c29"><tr class="c18"><td class="c24">
 <p class="codt"><b>procedure</b> B950001 <b>is</b><br>
  &nbsp; <b>package</b> Nested <b>is</b><br>
  &nbsp; &nbsp; &nbsp;<b>type</b> Intf <b>is</b> <b>synchronized</b> <b>interface</b>;<br>
@@ -91,7 +101,7 @@
 
 <p class="txts">The test also renames these calls:</p>
 
-<a id="t.99e97e28b61f37c8758585a612fac6cc328ca2d4"></a><a id="t.2"></a><table class="c20"><tr class="c18"><td class="c25">
+<a id="t.99e97e28b61f37c8758585a612fac6cc328ca2d4"></a><a id="t.2"></a><table class="c29"><tr class="c18"><td class="c24">
 <p class="codt"><b>procedure</b> RPE139 <b>renames</b> Intf_In_Parm.PEN1; &nbsp;-- ERROR: Prefix is
 constant<br>
 <b>procedure</b> RPE149 <b>renames</b> Intf_In_Out_Parm.PEN1; -- OK. Prefix is variable</p>
@@ -106,16 +116,16 @@
 <ul class="wbl"><li>For the purposes of defining the primitive operations of the formal type, each
 of the primitive operations of the actual type is considered to be a subprogram (with an intrinsic
 calling convention &mdash; see
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-3-1.html">6.3.1</a></span>)
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-3-1.html">6.3.1</a></span>)
 whose body consists of a dispatching call upon the corresponding operation of <i>T</i>, with its
 formal parameters as the actual parameters. If it is a function, the result of the dispatching call
 is returned.</li>
 <li>If the corresponding operation of <i>T</i> has no controlling formal parameters, then the
 controlling tag value is determined by the context of the call, according to the rules for
 tag-indeterminate calls (see
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-3-9-2.html">3.9.2</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-3-9-2.html">3.9.2</a></span>
 and
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-5-2.html">5.2</a></span>).
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-5-2.html">5.2</a></span>).
 In the case where the tag would be statically determined to be that of the formal type, the call
 raises Program_Error. If such a function is renamed, any call on the renaming raises
 Program_Error.</li>
@@ -126,29 +136,29 @@
 <p class="text">If we look at the current rules relating to prefixed views, we find that the
 profile of a prefixed view is defined in 4.1.3(9.2/3):</p>
 <p class="wrds">The
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
 denotes a view of this subprogram that omits the first formal parameter. This view is called a
 <i>prefixed view</i> of the subprogram, and the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
 (after any implicit dereference) is called the <i>prefix</i> of the prefixed view.</p>
 
 <p class="text">&nbsp;The semantics of a call on a prefixed view are given in RM 6.4(9.1/5):</p>
 <p class="wrds">If the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0091">name</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0091">name</a></span>
 or
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of a subprogram call denotes a prefixed view (see
-<span class="a29"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html">4.1.3</a></span>),
+<span class="a30"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html">4.1.3</a></span>),
 the subprogram call is equivalent to a call on the underlying subprogram, with the first actual
 parameter being provided by the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of the prefixed view (or the Access attribute of this
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 if the first formal parameter is an access parameter), and the remaining actual parameters given by
 the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-4.html#S0219">actual_parameter_part</a></span>,
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-4.html#S0219">actual_parameter_part</a></span>,
 if any. </p>
 
 <p class="txts">This does not clarify the properties of a <i>renaming</i> of a prefixed view when
@@ -175,38 +185,40 @@
 <h2 class="head">!wording</h2>
 <p class="inst">Modify 4.1.3(9.2/3):</p>
 <p class="word">The
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
 denotes a view of this subprogram that omits the first formal parameter. This view is called a
 <i>prefixed view</i> of the subprogram, and the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html#S0098">selected_component</a></span>
 (after any implicit dereference) is called the <i>prefix</i> of the prefixed view.
 <span class="ins">{In the special case where the prefix is class-wide and controlling, the prefixed
 view is not abstract, even if the unprefixed view is abstract; otherwise the prefixed view is
 abstract if and only if the unprefixed view is abstract. A renaming of a prefixed view whose prefix
 is class-wide and controlling shall have an expected profile such that each formal parameter or
-result type corresponding to a controlling (access) parameter or result in the unprefixed view, is
-(an access to) the same class-wide type as the prefix; otherwise the unprefixed view shall not be
-abstract and the types of the formal parameters or result in the expected profile shall match those
-of the corresponding formal parameters or result of the unprefixed view. When renaming a prefixed
-view whose prefix is tag-indeterminate and controlling, the controlling tag is statically
-determined to be that of the type of the prefix.}</span></p>
+result type corresponding to a controlling parameter (or access parameter) or result (or access
+result) in the unprefixed view, is the same class-wide type (or access to class-wide type) &nbsp;as
+the prefix; otherwise the unprefixed view shall not be abstract and the types of the formal
+parameters or result in the expected profile shall match those of the corresponding formal
+parameters or result of the unprefixed view. Any constraints on the formal parameters or results
+come from the unprefixed view, as with a normal subprogram renaming. When renaming a prefixed view
+whose prefix is tag-indeterminate and controlling, the controlling tag is statically determined to
+be that of the type of the prefix.}</span></p>
 <p class="inst">Modify 6.4(9.1/5):</p>
 <p class="wrds">If the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0091">name</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0091">name</a></span>
 or
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of a subprogram call denotes a prefixed view (see
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html">4.1.3</a></span>),
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1-3.html">4.1.3</a></span>),
 the subprogram call is equivalent to a call on the underlying subprogram, with the first actual
 parameter being provided by the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 of the prefixed view (or the Access attribute of this
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-1.html#S0093">prefix</a></span>
 if the first formal parameter is an access parameter), and the remaining actual parameters given by
 the
-<span class="c14"><a class="c3" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-4.html#S0219">actual_parameter_part</a></span>,
+<span class="c17"><a class="c4" href="http://www.ada-auth.org/standards/2xaarm/html/AA-6-4.html#S0219">actual_parameter_part</a></span>,
 if any. <span class="ins">{[Redundant: In the case where the prefix is class-wide and controlling,
 if there are multiple controlling parameters, a check is made that they all have the same tag, as
 defined in 3.9.2. A call on a renaming of a prefixed view results in a dispatching call if the
@@ -269,21 +281,59 @@
 
 <p class="txts">It might help to look at an example:</p>
 
-<a id="t.a943e863f7ff539b0a82525f010c1a75a7727aec"></a><a id="t.3"></a><table class="c20"><tr class="c18"><td class="c25">
-<p class="codt">&nbsp; &nbsp; <b>package</b> P1 <b>is</b><br>
- &nbsp; &nbsp; &nbsp; <b>type</b> Intf <b>is</b> <b>interface</b>;<br>
- &nbsp; &nbsp; &nbsp; <b>function</b> F1 (A : <b>in</b> Intf; B : <b>in</b> Natural)<br>
- &nbsp; &nbsp; &nbsp; &nbsp; <b>return</b> Boolean <b>is</b> <b>abstract</b>;<br>
- &nbsp; &nbsp; &nbsp; <b>function</b> F2 (A : <b>in</b> Intf&#39;Class; B : <b>in</b> Intf)<br>
- &nbsp; &nbsp; &nbsp; &nbsp; <b>return</b> Boolean <b>is</b> <b>abstract</b>;<br>
- &nbsp; &nbsp; &nbsp; <b>function</b> F3 (A, B : <b>in</b> Intf) <b>return</b> Boolean <b>is</b>
-<b>abstract</b>;<br>
- &nbsp; &nbsp;<b>end</b> P1;<br>
+<a id="t.a943e863f7ff539b0a82525f010c1a75a7727aec"></a><a id="t.3"></a><table class="c29"><tr class="c18"><td class="c24">
+<p class="text"><span class="c2">&nbsp; &nbsp;
+</span><span class="c5">package</span><span class="c2"> </span><span class="c9">P1
+</span><span class="c5">is</span><span class="c2"><br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">type</span><span class="c2">
+</span><span class="c1">Intf </span><span class="c5">is</span><span class="c2">
+</span><span class="c5">interface</span><span class="c2">;<br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">function</span><span class="c2">
+</span><span class="c9">F1</span><span class="c2"> (A :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Intf</span><span class="c2">; B :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Natural</span><span class="c2">)<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c5">return</span><span class="c2">
+</span><span class="c1">Boolean</span><span class="c2">
+</span><span class="c5">is</span><span class="c2">
+</span><span class="c5">abstract</span><span class="c2">;<br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">function</span><span class="c2">
+</span><span class="c9">F2</span><span class="c2"> (A :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Intf&#39;Class</span><span class="c2">; B :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Intf</span><span class="c2">)<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c5">return</span><span class="c2">
+</span><span class="c1">Boolean</span><span class="c2">
+</span><span class="c5">is</span><span class="c2">
+</span><span class="c5">abstract</span><span class="c2">;<br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">function</span><span class="c2">
+</span><span class="c9">F3</span><span class="c2"> (A, B :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Intf</span><span class="c2">)
+</span><span class="c5">return</span><span class="c2">
+</span><span class="c1">Boolean</span><span class="c2">
+</span><span class="c5">is</span><span class="c2">
+</span><span class="c5">abstract</span><span class="c2">;<br>
+</span><sup><a href="#cmnt1">[a]</a></sup><span class="c2">&nbsp; &nbsp;
+</span><span class="c5">end</span><span class="c2"> P1;<br>
 <br>
- &nbsp; &nbsp;<b>procedure</b> Test (Obj : <b>in</b> P1.Intf&#39;Class; Val : <b>in</b> Natural)
-<b>is</b><br>
- &nbsp; &nbsp; &nbsp; <b>function</b> R1a (B : <b>in</b> Natural) <b>return</b> Boolean
-<b>renames</b> Obj.F1; -- (1a)</p>
+ &nbsp; &nbsp;</span><span class="c5">procedure</span><span class="c2">
+</span><span class="c9">Test</span><span class="c2"> (Obj :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">P1.Intf</span><span class="c2">&#39;Class; Val :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Natural</span><span class="c2">)
+</span><span class="c5">is</span><span class="c2"><br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">function</span><span class="c2">
+</span><span class="c9">R1a</span><span class="c2"> (B :
+</span><span class="c5">in</span><span class="c2">
+</span><span class="c1">Natural</span><span class="c2">)
+</span><span class="c5">return</span><span class="c2">
+</span><span class="c1">Boolean</span><span class="c2">
+</span><span class="c5">renames</span><span class="c2"> Obj.F1; </span><span class="a15">--
+(1a)</span></p>
 <p class="codt">&nbsp; &nbsp; &nbsp; &nbsp;<b>function</b> R1b (B : <b>in</b> Natural)
 <b>return</b> Boolean -- Illegal&nbsp; &nbsp; &nbsp; -- (1b)</p>
 <p class="codt">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<b>renames</b> P1.Intf(Obj).F1; -- because
@@ -295,13 +345,21 @@
 is call on abstract subp<br>
  &nbsp; &nbsp; &nbsp; <b>function</b> R3 (B : <b>in</b> P1.Intf&#39;Class) &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -- (3)</p>
-<p class="codt">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<b>return</b> Boolean <b>renames</b> Obj.F3;<br>
- &nbsp; &nbsp;<b>begin</b><br>
- &nbsp; &nbsp; &nbsp; <b>if</b> R1a(1) <b>then</b>&nbsp; &nbsp; &nbsp;-- OK. R1a will dispatch
-<i>internally</i> based on Obj<br>
+<p class="text"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp;</span><span class="c5">return</span><span class="c2">
+</span><span class="c1">Boolean</span><span class="c2">
+</span><span class="c5">renames</span><span class="c2"> Obj.F3;<br>
+</span><sup><a href="#cmnt2">[b]</a></sup><span class="c2">&nbsp; &nbsp;
+</span><span class="c5">begin</span><span class="c2"><br>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">if</span><span class="c2">
+R1a(</span><span class="c1">1</span><span class="c2">)
+</span><span class="c5">then</span><span class="c2">&nbsp; &nbsp; &nbsp;</span><span class="c10">--
+OK. R1a will dispatch </span><span class="a16">internally</span><span class="c10"> based on
+Obj</span><span class="c2"><br>
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;null;<br>
- &nbsp; &nbsp; &nbsp; <b>elsif</b> R2(Obj) <b>then</b> -- Not legal unless R2 is itself a
-primitive</p>
+ &nbsp; &nbsp; &nbsp; </span><span class="c5">elsif</span><span class="c2"> R2(Obj)
+</span><span class="c5">then</span><span class="c2"> </span><span class="a15">-- Not legal unless
+R2 is itself a primitive</span></p>
 <p class="codt">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; -- (which it isn&#39;t) even though P1.F2(Val, Obj)<br>
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- is
@@ -313,7 +371,7 @@
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;null;<br>
  &nbsp; &nbsp; &nbsp; <b>end</b> <b>if</b>;<br>
  &nbsp; &nbsp;<b>end</b> Test;</p>
-</td></tr><tr class="c18"><td class="c25">
+</td></tr><tr class="c18"><td class="c24">
 <p class="codt">&nbsp;</p>
 </td></tr></table><p class="text">&nbsp;</p>
 <p class="text">R1a and R1b correspond to the two alternatives of the first case above. R1a is
@@ -418,4 +476,7 @@
 <p class="txts">it is best deferred.</p>
 
 
-</body></html> 
+<div class="c20"><p class="text"><a href="#cmnt_ref1">[a]</a>Obj.F3(BC) is equiv to F3(Obj, BC)</p>
+</div><div class="c20"><p class="text"><a href="#cmnt_ref2">[b]</a>Please add example of code for
+R3 -- Ed S.</p>
+</div></body></html> 

Questions? Ask the ACAA Technical Agent