CVS difference for ais/ai-00145.txt
--- ais/ai-00145.txt 2000/06/21 23:39:09 1.4
+++ ais/ai-00145.txt 2000/07/15 02:29:59 1.5
@@ -1,4 +1,4 @@
-!standard 03.05 (15) 99-08-31 AI95-00145/03
+!standard 03.05 (15) 00-07-13 AI95-00145/04
!standard 08.05.04 (05)
!standard A.01 (07)
!standard A.01 (09-10)
@@ -24,7 +24,7 @@
!reference AI95-00107
!priority High
!difficulty Hard
-!qualifier Omission
+!qualifier Error
!subject Profile of predefined operators for scalar types
!summary
@@ -37,7 +37,7 @@
- the type without any constraint, in other cases
-The definitions of the operators in chapter 4 take precedence over those
+The definitions of the operators in section 4 take precedence over those
shown in A.1 in package Standard; for example, the "<" operator on type
Boolean has parameters of subtype Boolean'Base, not Boolean.
@@ -51,14 +51,14 @@
4.5.2(8-9) says:
-8 The ordering operators are predefined for every specific scalar type T,
-and for every discrete array type T, with the following specifications:
+ The ordering operators are predefined for every specific scalar type T,
+ and for every discrete array type T, with the following specifications:
-9 function "<" (Left, Right : T) return Boolean
+ function "<" (Left, Right : T) return Boolean
...
where the T is in italics. Similar definitions are given throughout
-chapter 4 for other predefined operators. What is the meaning of this
+section 4 for other predefined operators. What is the meaning of this
italicized type name notation? Presumably, it is intended to refer to
the base subtype, at least in some cases.
@@ -78,30 +78,18 @@
!discussion
-Consider:
+Consider the following type declarations, where the comments show the subtypes
+associated with the italicized notation in section 4:
- type T1 is range ...;
- type T2 is tagged ...;
- type T3(D: Integer) is tagged ...;
- type T4 is array(Integer range <>) of Integer;
- type T5 is array(Integer range 1..100) of Integer;
- type T6 is record ...;
+ <<Start_Example>>
+ type T1 is range ...; -- T1'Base
+ type T2 is tagged ...; -- T2
+ type T3(D: Integer) is tagged ...; -- T3
+ type T4 is array(Integer range <>) of Integer; -- T4
+ type T5 is array(Integer range 1..100) of Integer; -- T5-without-the-constraint
+ type T6 is record ...; -- T6
-The italicized notation refers to the following subtypes:
-
- T1'Base
-
- T2
-
- T3
-
- T4
-
- T5-without-the-constraint
-
- T6
-
-respectively. Note that T2 and T6 are constrained, despite the fact
+Note that T2 and T6 are constrained, despite the fact
that they have no constraint. Note also that in the case of T5, the
subtype in question has no name in Ada, since the Base attribute is not
defined for composite types.
@@ -109,7 +97,7 @@
The Boolean operators in A.1 are shown with the wrong subtypes --
Boolean'Base is correct.
-8.5.4(5) says:
+Furthermore, 8.5.4(5) says:
The profile of a renaming-as-body shall be subtype-conformant with that
of the renamed callable entity, and shall conform fully to that of the
@@ -118,7 +106,7 @@
its convention from the renamed subprogram; otherwise the convention of the
renamed subprogram shall not be Intrinsic.
-Consider:
+However, consider:
package P is
type T is private;
Questions? Ask the ACAA Technical Agent