!standard 3.10.1(2.4/3) 19-09-04 AC95-00318/00 !class confirmation 19-09-04 !status received no action 19-09-04 !status received 19-06-07 !subject Problem with 3.10.1 !summary !appendix From: Jean-Pierre Rosen Sent: Tuesday, June 11, 2019 2:48 PM I just came across 3.10.1 (2.4/3): it occurs within the scope of a nonlimited_with_clause that mentions a library package in whose visible part the completion of T is declared, or Couldn't make any sense out of that... *************************************************************** From: Randy Brukardt Sent: Tuesday, July 2, 2019 10:17 PM > I just came across 3.10.1 (2.4/3): > > it occurs within the scope of a nonlimited_with_clause that mentions a > library package in whose visible part the completion of T is declared, > or > > Couldn't make any sense out of that... Not sure what the problem is. Each piece makes sense, and the combining seems OK. It's a bit of a run-on, but we have lots of those. This is pretty much all composed of technical terms, so the ability to reword is limited. But it seems clear enough (combined with the lead-in): Given an access type A whose designated type T is an incomplete view, a dereference of a value of type A also has this incomplete view except when: * it occurs within the scope of a nonlimited_with_clause that mentions a library package in whose visible part the completion of T is declared, or (1) "it" here refers to "a dereference of a value of type A"; surely don't want to repeat that. (2) "within the scope of a nonlimited_with_clause" should be obvious. (3) "a nonlimited_with_clause that mentions a library package" - "mentions" is a technical term, which means directly names or is an ancestor unit thereof. (So "with A.B" mentions both units A and A.B). "Mentions" is the term that gives rise to the common rule that a with_clause withs the parent (and grandparent) as well as the child. (4) "in whose visible part the completion of T is declared" should be obvious, as well. So, "it" (the dereference) is of a complete view if the completion of incomplete type T is visible because of a with clause (that is, the dereference does not have the incomplete view). This mainly is important for limited withs; the type becomes complete if one is within a normal withs scope for the package. Hope this helps. *************************************************************** From: Jean-Pierre Rosen Sent: Tuesday, July 2, 2019 11:23 PM > Not sure what the problem is. [...] > (4) "in whose visible part the completion of T is declared" should be > obvious, as well. It's the "in whose" formulation that sounded strange to my non-english-natives ears. "whose visible part contains the declaration of T" would be fine (for me). *************************************************************** From: Randy Brukardt Sent: Friday, August 30, 2019 4:48 PM > It's the "in whose" formulation that sounded strange to my > non-english-natives ears. "whose visible part contains the declaration > of T" would be fine (for me). That doesn't work, because we have to talk about the completion of T, not just any declaration of T. "whose visible part contains the declaration of the completion of T" would work, I guess. I think we didn't use that simply because it's lengthening an already run-on sentence. I guess I find this insufficiently broken (well, not broken at all) to make any change. "Sounds weird" is hardly a reason to change Ada 2005 wording that's been around for almost 13 years, been discussed multiple times, and even rewritten in 2010 without changing that phrase. No big deal either way, so speak up if you would like it changed (especially if you are not J-P). ***************************************************************