CVS difference for ais/ai-00254.txt

Differences between 1.19 and version 1.20
Log of other versions for file ais/ai-00254.txt

--- ais/ai-00254.txt	2005/01/28 02:10:40	1.19
+++ ais/ai-00254.txt	2005/02/08 07:12:26	1.20
@@ -92,13 +92,13 @@
 implementation problems and parallels the functionality of the corresponding
 construction in languages such as Pascal.)
 
-The accessibility level of such parameters is considered to be infinite.
-This prevents all explicit type conversions on such parameters. Moreover,
-since they are of anonymous type (like access-to-object parameters) this
-implies that assignment of them is forbidden. Note that the infinite
-accessibility level also prevents the writing of Fn.all'Access
-which could otherwise create a hidden type conversion. (These restrictions
-again avoid a number of potential implementation difficulties.)
+The accessibility level of such parameters is considered to be deeper than
+any master (essentially infinite). This prevents all explicit type conversions
+on such parameters. Moreover, since they are of anonymous type (like
+access-to-object parameters) this implies that assignment of them i forbidden.
+Note that the infinite accessibility level also prevents the writing of
+Fn.all'Access which could otherwise create a hidden type conversion. (These
+restrictions again avoid a number of potential implementation difficulties.)
 
 Accessibility checks are never required and so such parameters do not need
 to carry an accessibility level with them in contrast to access-to-object
@@ -187,7 +187,7 @@
     this is the accessibility level of the execution of the called subprogram.
 
 *   The accessibility level of the anonymous access type of an access parameter
-    specifying an access-to-subprogram type is infinite.
+    specifying an access-to-subprogram type is deeper than any master.
 
 Modify 3.10.2(17) by adding
 
@@ -203,14 +203,16 @@
   an anonymous access type of an access parameter.
 
 Replace the note 3.10.2(37) by:
-  The accessibility rules imply that it is possible to use the Access attribute
-  to implement "downward closures" -- that is, to pass a more-nested subprogram
-  as a parameter to a less-nested subprogram, as might be desired for example
-  for an iterator abstraction -- only for anonymous access-to-subprogram
-  parameters. Downward closures also can be implemented using generic formal
-  subprograms (see 12.6). Note that Unchecked_Access is not allowed for
-  subprograms.
+  The Access attribute for subprograms and parameters of an anonymous
+  access-to-subprogram type may together be used to implement
+  "downward closures" -- that is, to pass a more-nested
+  subprogram as a parameter to a less-nested subprogram,
+  as might be appropriate for an iterator abstaction or
+  numerical integration. Downward closures can also be implemented
+  using generic formal subprograms (see 12.6). Note that Unchecked_Access is
+  not allowed for subprograms.
 
+
 Replace 4.9.1(2) by
 
 A subtype statically matches another subtype of the same type if they have
@@ -832,7 +834,7 @@
 
 Note that this is precisely how we originally tried to write it. There are
 no longer any problems with accessibility because the accessibility of the
-parameter type is deemed to be infinite.
+parameter type is deemed to be deeper than any master.
 
 An alternative proposal might be to mirror more closely the procedure
 parameter facility of Pascal and so sweep the access mechanism under the
@@ -941,6 +943,15 @@
 @fa<access_definition> defines an access subtype which excludes the null value;
 otherwise the subtype includes a null value.
 
+!corrigendum 3.10(17)
+
+@drepl
+The elaboration of an @fa<access_definition> creates an anonymous general
+access-to-variable type [(this happens as part of the initialization of an
+access parameter or access discriminant)].
+@dby
+The elaboration of an @fa<access_definition> creates an anonymous access type.
+
 !corrigendum 3.10.2(13)
 
 @drepl
@@ -954,17 +965,8 @@
 designated by the actual. If the actual is an @fa<allocator>, this is the
 accessibility level of the execution of the called subprogram.>
 @xbullet<The accessibility level of the anonymous access type of an access
-parameter specifying an access-to-subprogram type is infinite.>
-
-!corrigendum 3.10(17)
+parameter specifying an access-to-subprogram type is deeper than any master.>
 
-@drepl
-The elaboration of an @fa<access_definition> creates an anonymous general
-access-to-variable type [(this happens as part of the initialization of an
-access parameter or access discriminant)].
-@dby
-The elaboration of an @fa<access_definition> creates an anonymous access type.
-
 !corrigendum 03.10.02(19)
 
 @drepl
@@ -1018,14 +1020,14 @@
 be implemented using generic formal subprograms (see 12.6). Note that
 Unchecked_Access is not allowed for subprograms.>>
 @dby
-@xindent<@s9<The accessibility rules imply that it is possible to use the
-Access attribute to implement "downward closures" -- that is, to pass a
-more-nested subprogram as a parameter to a less-nested subprogram, as might be
-desired for example for an iterator abstraction -- only for anonymous
-access-to-subprogram parameters. Downward closures also can be implemented
-using generic formal subprograms (see 12.6). Note that Unchecked_Access is not
-allowed for subprograms.>>
-
+@xindent<@s9<The Access attribute for subprograms and parameters of an
+anonymous access-to-subprogram type may together be used to implement
+"downward closures" -- that is, to pass a more-nested
+subprogram as a parameter to a less-nested subprogram,
+as might be appropriate for an iterator abstaction or
+numerical integration. Downward closures can also be implemented
+using generic formal subprograms (see 12.6). Note that Unchecked_Access is
+not allowed for subprograms.>>
 
 !corrigendum 4.9.1(2)
 
@@ -1147,7 +1149,7 @@
 !reference RM9X-3.10.2(16);4.0
 !reference AARM-12.3(12.p,12.q);4.0
 !reference LSN-1042 on Accessibility Checks in Generics
-!from Bob Duff $Date: 2005/01/28 02:10:40 $ $Revision: 1.19 $
+!from Bob Duff $Date: 2005/02/08 07:12:26 $ $Revision: 1.20 $
 !discussion
 
 Two issues related to access types and the accessibility rules came
@@ -1560,7 +1562,7 @@
 !topic LSN on Accessibility Checks in Generics
 !key LSN-1042 on Accessibility Checks in Generics
 !reference MS-12;4.6
-!from Bob Duff $Date: 2005/01/28 02:10:40 $ $Revision: 1.19 $
+!from Bob Duff $Date: 2005/02/08 07:12:26 $ $Revision: 1.20 $
 !discussion
 
 This Language Study Note discusses accessibility checks, and their

Questions? Ask the ACAA Technical Agent