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

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0256-1.txt

--- ai12s/ai12-0256-1.txt	2018/05/10 06:07:32	1.2
+++ ai12s/ai12-0256-1.txt	2018/07/15 00:25:58	1.3
@@ -1,13 +1,16 @@
-!standard H.4.1(0)                                  18-01-31  AI12-0256-1/01
+!standard H.4.1(0)                                  18-07-06  AI12-0256-1/02
+!standard 13.1.1(18.7/5)
 !class Amendment 18-01-31
+!status Amendment 1-2012 18-07-06
+!status ARG Approved 10-0-0  18-06-23
 !status work item 18-01-31
 !status received 18-01-21
 !priority Very_Low
 !difficulty Easy
-!subject Aspect No_Controlled_Subcomponents
+!subject Aspect No_Controlled_Parts
 !summary
 
-Aspect No_Controlled_Subcomponents is added to Ada.
+Aspect No_Controlled_Parts is added to Ada.
 
 !problem
 
@@ -44,38 +47,34 @@
 but only on a single type and its descendants. So I've put it there
 pending discussion.
 
-H.4.1 Aspect No_Controlled_Subcomponents
+H.4.1 Aspect No_Controlled_Parts
 
 Static Semantics
 
-Given a type T, the following type-related, operational aspects may be specified:
+For a type, the following type-related, operational aspect may be specified:
 
-No_Controlled_Subcomponents
+No_Controlled_Parts
     The type of this aspect is Boolean. If True, requires that the type and any
-    descendants do not have any controlled subcomponents. If specified, the
+    descendants do not have any controlled parts. If specified, the
     value of the expression shall be static. If not specified, the value of
     this aspect is considered False.
 
-The No_Controlled_Subcomponents aspect is nonoverridable (see 13.1.1).
+The No_Controlled_Parts aspect is nonoverridable (see 13.1.1).
 
-AARM Note: This effectively requires that the aspect is specified (other than
-as confirming) only on ultimate ancestor types that have no parent or
-progentitor types.
-
 Legality Rules
 
-If No_Controlled_Subcomponents is True for a type, no component of the type
-shall have a controlled subcomponent. In addition to the places where Legality
-Rules normally apply (see 12.3), this rule also applies in the private part of
-an instance of a generic unit.
+If No_Controlled_Parts is True for a type, no component of the type
+shall have a controlled part nor shall the type itself be controlled. In 
+addition to the places where Legality Rules normally apply (see 12.3), this 
+rule also applies in the private part of an instance of a generic unit.
 
 When enforcing the above rule within a generic body, a generic formal private type
 and a generic formal derived type of a composite type are considered to have a
-controlled subcomponent. 
+controlled part. 
 
 AARM Reason: This is a typical generic assume-the-worst rule.
 
-Modify 13.1.1(18.7/5) to include aspect No_Controlled_Subcomponents.
+Modify 13.1.1(18.7/5) to include aspect No_Controlled_Parts.
 
 !discussion
 
@@ -100,6 +99,48 @@
 The proposed aspect allows eliminating overhead specifically from class-wide
 type hierarchies while still allowing controlled types to appear in the runtime
 and elsewhere.
+
+!corrigendum 13.1.1(18.6/5)
+!comment This was the original paragraph number, AI12-0211-1 changed it.
+!comment We have to use the original number here so that a conflict is 
+!comment properly detected.
+
+@drepl
+The Default_Iterator, Iterator_Element, Implicit_Dereference,
+Constant_Indexing, Variable_Indexing, and Max_Entry_Queue_Length aspects are
+nonoverridable.
+@dby
+The Default_Iterator, Iterator_Element, Implicit_Dereference,
+Constant_Indexing, Variable_Indexing, Max_Entry_Queue_Length, and 
+No_Controlled_Parts aspects are nonoverridable.
+
+
+!corrigendum H.4.1(0)
+
+@dinsc
+
+@s8<@i<Static Semantics>>
+
+For a type, the following type-related, operational aspect may be specified:
+
+@xhang<@xterm<No_Controlled_Parts>
+The type of this aspect is Boolean. If True, requires that the type and any
+descendants do not have any controlled parts. If specified, the
+value of the expression shall be static. If not specified, the value of
+this aspect is considered False.>
+
+The No_Controlled_Parts aspect is nonoverridable (see 13.1.1).
+
+@s8<@i<Legality Rules>>
+
+If No_Controlled_Parts is True for a type, no component of the type
+shall have a controlled part nor shall the type itself be controlled. In 
+addition to the places where Legality Rules normally apply (see 12.3), this 
+rule also applies in the private part of an instance of a generic unit.
+
+When enforcing the above rule within a generic body, a generic formal private type
+and a generic formal derived type of a composite type are considered to have a
+controlled part. 
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent