CVS difference for ai05s/ai05-0244-1.txt
--- ai05s/ai05-0244-1.txt 2011/03/10 03:41:40 1.2
+++ ai05s/ai05-0244-1.txt 2011/03/10 04:16:16 1.3
@@ -1,5 +1,7 @@
-!standard 4.3.2(5.1/3) 11-02-16 AI05-0244-1/01
+!standard 4.3.2(5.1/3) 11-03-09 AI05-0244-1/02
!class binding interpretation 11-02-15
+!status Amendment 2012 11-03-09
+!status ARG Approved 6-0-2 10-02-20
!status work item 11-02-15
!status received 11-01-19
!priority Low
@@ -8,11 +10,13 @@
!subject Ancestor parts that are qualified or parenthesized
!summary
-** TBD **
+Ancestor expressions that are qualified, parenthesized, or
+are conditional expressions are subject to the same rules that a
+stand-alone expression is.
!question
-4.3.2(5.1/3) says:
+4.3.2(5.1/3) [from AI05-0067-1] says:
If the ancestor_part is a function call and the type of the
ancestor_part is limited, then the ancestor_part shall have a
constrained nominal subtype unless there are no components needed in
@@ -49,21 +53,47 @@
If the type of the ancestor_part is limited
and at least one component is needed in the
- record_component_association_list, then the ancestor part shall not
- be
- - a call to a function with an unconstrained result subtype; or
+ record_component_association_list, then the ancestor_part shall not
+ be:
+ - a call to a function with an unconstrained result subtype; nor
- a parenthesized or qualified expression whose operand
- would violate thie rule; or
- - a conditional expression having at least one dependent
- expression which would violate this rule.
+ would violate this rule; nor
+ - a conditional_expression having at least one *dependent_*expression
+ that would violate this rule.
!discussion
---!corrigendum 12.5.1(5/2)
+This is obvious; parens or qualification should not affect the semantics
+of an expression. Conditional expressions are intended to work as similarly
+to parens as possible.
+
+The rule is recursive, of course. It applies to parenthesized qualified expressions
+and qualified conditional_expressions and any other combination.
+
+!corrigendum 4.3.2(5)
+!comment As this is an inserted paragraph, we have to use the original number to
+!comment force a conflict with AI05-0067-1.
+@drepl
+If the @fa<ancestor_part> is a function call and the type of the @fa<ancestor_part> is
+limited, then the @fa<ancestor_part> shall have a constrained nominal subtype
+unless there are no components needed in the @fa<record_component_association_list>.
+@dby
+If the type of the @fa<ancestor_part> is limited and at least one component is
+needed in the @fa<record_component_association_list>, then the ancestor part shall
+not be:
+@xbullet<a call to a function with an unconstrained result subtype; nor>
+@xbullet<a parenthesized or qualified expression whose operand
+ould violate this rule; nor>
+@xbullet<a @fa<conditional_expression> having at least one @i<dependent_>@fa<expression>
+that would violate this rule.>
-
!ACATS test
+Add cases like these to the B-Test that checks this rule.
+
+!ASIS
+
+No ASIS impact.
!appendix
Questions? Ask the ACAA Technical Agent