--- ai12s/ai12-0378-1.txt 2020/06/08 00:10:27 1.2 +++ ai12s/ai12-0378-1.txt 2020/06/08 01:39:35 1.3 @@ -1,4 +1,4 @@ -!standard 6.4.1(13/3) 20-06-07 AI12-0378-1/02 +!standard 6.4.1(13/3) 20-06-08 AI12-0378-1/03 !class Amendment 20-04-29 !status work item 20-04-29 !status received 20-03-26 @@ -29,28 +29,25 @@ [Author's Note: Broken into two bullets.] - * For an access type,[ the formal parameter is initialized from the value - of the actual, without checking that the value satisfies any constraint, - any predicate, or any exclusion of the null value;] +* For an access type, { - {* if the value is nonnull, satisfies any constraints of the formal, + * if the value is nonnull, satisfies any constraints of the formal, has an accessibility level no deeper than that of the type of the formal, and, if the designated type is tagged, the tag of the designated object identifies a type that is covered by the type of - the formal, the formal parameter is initialized from the value of + the formal, then the formal parameter is initialized from the value of the actual, without checking whether the value satisfies any predicate; - * otherwise, the the formal parameter is initialized to the null value - of the formal type, without checking that the value satisfies any - predicate or any exclusion of the null value.} + * otherwise,} the formal parameter is initialized to the null value + of the formal type, without checking that the value satisfies [any + constraint,] any predicate[,] or any exclusion of the null value; - AARM Implementation Note: This rule means that any constraint + {AARM Implementation Note: This rule means that any constraint checks, tag checks, and accessibility checks can be assumed to pass for an out parameter, but null exclusions and predicates cannot be assumed unless the compiler can prove that the object - has been previously written within the subprogram. - + has been previously written within the subprogram.} !discussion

Questions? Ask the ACAA Technical Agent