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

Differences between 1.6 and version 1.7
Log of other versions for file ai12s/ai12-0155-1.txt

--- ai12s/ai12-0155-1.txt	2015/06/02 03:27:47	1.6
+++ ai12s/ai12-0155-1.txt	2015/06/18 05:56:10	1.7
@@ -1,4 +1,4 @@
-!standard 3.10.1(10/3)                                   15-06-01  AI05-0155-1/05
+!standard 3.10.1(10/3)                                   15-06-17  AI05-0155-1/06
 !standard 13.14(3/4)
 !standard 13.14(15.1/3)
 !class binding interpretation 15-02-20
@@ -146,51 +146,19 @@
 case, discussed in AI05-0017-1, where the Legality Rules are insufficient and
 freezing of incomplete types fixed any problems.
 
-Therefore, we need to add a Legality Rule to 3.10.1 to cover those cases. Once
-we have that, there is no need to ever freeze an incomplete view, and thus
-we add a rule to explicitly state that.
+Therefore, we need to add a Legality Rule to 3.10.1 to cover the one known
+case. Once we have that, there is no need to ever freeze an incomplete view,
+and thus we add a rule to explicitly state that.
 
 We simplify the wording of 13.14(3/4) to eliminate all mentions
 of incomplete types or views, as those are covered by the new notwithstanding
 rule. (The new notwithstanding rule also covers - at least - explicit uses as
 a name, and occurrences of incomplete views in profiles.)
 
-[Note to Tucker: An alternative approach would be to make different (fewer??)
-changes and just except incomplete views from freezing from the end of packages
-[already true], in profiles, and by explicit reference. Other sorts of uses
-(in object declarations, for instance) are already illegal. But this seems
-fragile in that anything I forgot about would still freeze the incomplete
-type (might be harmless, might not).]
-
 13.14(5/3) and 13.14(10.2/4) still need their mentions of formal incomplete
-types, as those are is mainly about not freezing private types when used as an
+types, as those are mainly about not freezing private types when used as an
 actual, and not freezing the profile of an actual subprogram with private type
 parameters. The rules are not specifically about incomplete types.
-
-----
-
-The author created a complete ACATS-style test for an example like the one
-in the question. The test uses the operations in a child package where
-the completion is unknown. (This is usefully possible because the type
-is tagged incomplete, thus calls can be made so long as the object is passed
-intact.)
-
-Compiling this program on GNAT shows that GNAT does not detect the freezing
-violations. However, the child package containing the calls generates a
-lovely internal error message. Because of this, it is not possible to run
-the program.
-
-As such, it seems unlikely that anyone is depending on these operations
-working; neither the RM nor the only known fielded Ada 2012 implementation
-allows them. That's not particularly surprising; the capability was added by
-Ada 2012 and Taft-Amendment types aren't that common, so most likely no one
-has yet run into the intersection of both.
-
-[Note to Tucker II: I can certainly live with not changing anything here,
-but then I certainly would want to have ACATS tests that ensure that the
-original example was detected as a freezing error. Else we have an "attractive
-hazard", something that looks like it should work, and might work on some
-compiler, but actually doesn't work.]
 
 !corrigendum 13.14(3/4)
 

Questions? Ask the ACAA Technical Agent