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

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

--- ai22s/ai22-0039-1.html	2022/06/17 06:13:50	1.1
+++ ai22s/ai22-0039-1.html	2022/06/17 06:15:52	1.2
@@ -1,7 +1,10 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0039-1/01</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0039-1/02</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c10{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c1{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Times New Roman";font-style:normal}
+.c2{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c12{font-weight:400;font-family:"Arial"}
+.c8{border:1px solid black;margin:5px}
 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}
@@ -12,13 +15,13 @@
 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}
-SPAN.ntrm{font-family:"Arial","Liberation Sans",sans-serif}
-P.a0{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.del{color:#880000}
+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="c10"><p class="a0">AI22-0039-1</p>
+</head><body class="c2"><p class="a1">AI22-0039-1</p>
 <p class="head">!standard 8.3(26/2) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22-02-04 &nbsp;AI22-0039-1/01</p>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22-04-25 &nbsp;AI22-0039-1/02</p>
 <p class="head">!class presentation 22-02-04</p>
 <p class="head">!status work item 22-02-04</p>
 <p class="head">!status received 21-05-20</p>
@@ -30,9 +33,9 @@
 <h2 class="head">!issue</h2>
 
 <p class="text">[WG 9 comment #150] 8.3(26/2) starts by stating several rules for various things,
-and then says &quot;These rules also apply to dispatching operators declared in the visible part of
-an instance of a generic unit&quot;. The part &quot;these rules&quot; is confusing, because some of
-the rules stated earlier in the</p>
+and then says &quot;These rules also apply to dispatching operations declared in the visible part
+of an instance of a generic unit&quot;. The part &quot;these rules&quot; is confusing, because some
+of the rules stated earlier in the</p>
 <p class="text">paragraph apply to type extensions or to context clauses, neither of which seems
 relevant to declarations of dispatching operations. Should this be clarified? (Yes.)</p>
 <h2 class="head">!recommendation</h2>
@@ -43,28 +46,26 @@
 
 <p class="wrds">A nonoverridable declaration is illegal if there is a homograph occurring
 immediately within the same declarative region that is visible at the place of the declaration, and
-is not hidden from all visibility by the non-overridable declaration. In addition, a type extension
-is illegal if somewhere within its immediate scope it has two visible components with the same
-name. Similarly, the <span class="ntrm">context_clause</span> for a compilation unit is illegal if
-it mentions (in a <span class="ntrm">with_clause</span>) some library unit, and there is a
-homograph of the library unit that is visible at the place of the compilation unit, and the
-homograph and the mentioned library unit are both declared immediately within the same declarative
-region. These rules <span class="ins">{that apply to subprograms }</span>also apply to
-&nbsp;dispatching operations declared in the visible part of an instance of a generic unit.
-However, they do not apply to other overloadable declarations in an instance; such declarations may
-have type conformant profiles in the instance, so long as the corresponding declarations in the
-generic were not &nbsp;type conformant.</p>
-
-<p class="inst">Add after AARM 8.3(26.k):</p>
-
-<p class="wrds">AARM Ramification: The type extension component rule obviously does not &nbsp;apply
-to dispatching operations in an instance. However, the context clause rule could apply, as a
-compilation unit can be a subprogram.</p>
-
-<p class="text">[Editor&#39;s note: I&#39;m unsure that the wording added to the normative
-wording</p>
-<p class="text">actually helps anything. Perhaps we should just add an AARM note like the one</p>
-<p class="text">given??]</p>
+is not hidden from all visibility by the non-overridable declaration. <span class="ins">{This rule
+also applies to dispatching operations declared in the visible part of an instance of a generic
+unit. However, it does not apply to other overloadable declarations in an instance; such
+declarations may have type conformant profiles in the instance, so long as the corresponding
+declarations in the generic were not type conformant.</span></p>
+
+<p class="wrds"><span class="ins">}</span><span class="del">[In addition,
+a]</span><span class="ins">{A}</span> type extension is illegal if somewhere within its immediate
+scope it has two visible components with the same name. <span class="del">[Similarly,
+the]</span><span class="ins">{The}</span> <span class="c12">context_clause</span> for a compilation
+unit is illegal if it mentions (in a <span class="c12">with_clause</span>) some library unit, and
+there is a homograph of the library unit that is visible at the place of the compilation unit, and
+the homograph and the mentioned library unit are both declared immediately within the same
+declarative region.
+&nbsp;<sup><a href="#cmnt1"><span class="del">[a]</span></a></sup><sup><a href="#cmnt2"><span class="del">[b]</span></a></sup><sup><a href="#cmnt3"><span class="del">[c]</span></a></sup><sup><a href="#cmnt4"><span class="del">[d]</span></a></sup><span cla
ss="c1"><span class="del">[These
+rules also apply to &nbsp;dispatching operations declared in the visible part of an instance of a
+generic unit. However, they do not apply to other overloadable declarations in an instance; such
+declarations may have type conformant profiles in the instance, so long as the corresponding
+declarations in the generic were not &nbsp;type conformant.]</span></span></p>
+
 <h2 class="head">!discussion</h2>
 
 <p class="txts">The last two sentences of 8.3(26/2) are original Ada 95 wording. At that time, the
@@ -93,22 +94,19 @@
 <p class="text">have type conformant profiles in the instance, so long as the corresponding</p>
 <p class="text">declarations in the generic were not type conformant.</p>
 <p class="text">@dby</p>
-<p class="text">A nonoverridable declaration is illegal if there is a homograph occurring</p>
-<p class="text">immediately within the same declarative region that is visible at the place of</p>
-<p class="text">the declaration, and is not hidden from all visibility by the non-overridable</p>
-<p class="text">declaration. In addition, a type extension is illegal if somewhere within its</p>
-<p class="text">immediate scope it has two visible components with the same name. Similarly,</p>
-<p class="text">the @fa{context_clause} for a compilation unit is illegal if it mentions (in a</p>
-<p class="text">@fa{with_clause}) some library unit, and there is a homograph of the library</p>
-<p class="text">unit that is visible at the place of the compilation unit, and the homograph</p>
-<p class="text">and the mentioned library unit are both declared immediately within the same</p>
-<p class="text">declarative region. These rules that apply to subprograms also apply to</p>
-<p class="text">dispatching operations declared in the visible part of an instance of a</p>
-<p class="text">generic unit. However, they do not apply to other overloadable declarations</p>
-<p class="text">in an instance; such declarations may have type conformant profiles in the</p>
-<p class="text">instance, so long as the corresponding declarations in the generic were not</p>
-<p class="txts">type conformant.</p>
-
+<p class="txts">A nonoverridable declaration is illegal if there is a homograph occurring
+immediately within the same declarative region that is visible at the place of the declaration, and
+is not hidden from all visibility by the non-overridable declaration. This rule also applies to
+dispatching operations declared in the visible part of an instance of a generic unit. However, it
+does not apply to other overloadable declarations in an instance; such declarations may have type
+conformant profiles in the instance, so long as the corresponding declarations in the generic were
+not type conformant.</p>
+
+<p class="text">A type extension is illegal if somewhere within its immediate scope it has two
+visible components with the same name. The @fa{context_clause} for a compilation unit is illegal if
+it mentions (in a @fa{with_clause}) some library unit, and there is a homograph of the library unit
+that is visible at the place of the compilation unit, and the homograph and the mentioned library
+unit are both declared immediately within the same declarative region.</p>
 <h2 class="head">!ACATS test</h2>
 
 <p class="text">No tests are needed for presentation changes.</p>
@@ -152,4 +150,18 @@
 <p class="txts">it is marked deferred.</p>
 
 <p class="text">****************************************************************</p>
-</body></html> 
+<div class="c8"><p class="text"><a href="#cmnt_ref1">[a]</a>Might be better: &quot;The rules given
+above that apply to subprograms ...&quot;</p>
+</div><div class="c8"><p class="text"><a href="#cmnt_ref2">[b]</a>Yes, but do we need it? I was
+unable to convince myself that the context clause rule could ever trigger for a dispatching
+operation. If &quot;these rules&quot; is really only one rule, rearranging the text would be
+better. I think that was the reason this was given to you as homework.</p>
+</div><div class="c8"><p class="text"><a href="#cmnt_ref3">[c]</a>Expanding a bit: A context clause
+can mention a subprogram, but a library unit cannot be a dispatching operation. A stub could be a
+dispatching operation, but &quot;separate&quot; is NOT part of a context clause, so the rule
+doesn&#39;t apply there anyway (and wouldn&#39;t the stub be illegal if there was a problem?). So
+if only the first rule is really involved with &quot;these rules&quot;, then this sentence should
+just follow the first sentence with &quot;this rule also applies...&quot;. Right?</p>
+</div><div class="c8"><p class="text"><a href="#cmnt_ref4">[d]</a>Agreed.&nbsp; I have made that
+change, and have suggested a new paragraph for the following sentences.</p>
+</div></body></html> 

Questions? Ask the ACAA Technical Agent