From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9697af769c7c74cc X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1993-04-03 03:20:56 PST Newsgroups: comp.lang.ada Path: gmd.de!ira.uka.de!yale.edu!think.com!sdd.hp.com!elroy.jpl.nasa.gov!usc!venice!gumby.dsd.trw.com!deneva!wilbur.coyote.trw.com!wilbur.coyote.trw.com!rich From: rich@wilbur.coyote.trw.com (Rich Messenger) Subject: Re: Language lawyer needed Message-ID: <1993Apr2.230717.7881@wilbur.coyote.trw.com> Sender: news@wilbur.coyote.trw.com Nntp-Posting-Host: wilbur.coyote.trw.com Organization: TRW Inc., Redondo Beach, CA References: <1993Apr1.215753.3147@oracorp.com> Distribution: usa Date: Fri, 2 Apr 1993 23:07:17 GMT Date: 1993-04-02T23:07:17+00:00 List-Id: davidg@oracorp.com (David Guaspari) writes: >Here's a question for language lawyers. >Consider the following pathological program: > procedure Q(x : integer) is > begin > declare > x : integer; -- (1) > begin > Q(x => 0); -- (2) > end; > end Q; >My question concerns the legality of Q (forgetting about the fact that >its execution won't terminate). One way to apply chapter 8 in the >reference manual goes as follows: [omitted] I'm no language lawyer, but I looked this up in the LRM index and found the following rule which explains why this works: 8.3.6: Visibility is either by selection or direct. A declaration is visible by selection at places that are defined as follows: ... (e) For a parameter specification of a given subprogram specification or entry declaration: at the place of the formal parameter (before the compound delimiter =>) in a named parameter association of a corresponding subprogram or entry call. In other words, in the named parameter association "x" is considered to be selected in the same sense that dot notation can be used to select a declaration from the visible part of a package declaration. -- _ __ ' ) ) / Rich Messenger /--' o _. /_ rich@wilbur.coyote.trw.com / \_(_(__/ /_ ...!{uunet,cit-vax,trwrb}!wiley!rich