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-02 22:09:40 PST Newsgroups: comp.lang.ada Path: gmd.de!ira.uka.de!yale.edu!newsserver.jvnc.net!darwin.sura.net!aplcen.apl.jhu.edu!ddsdx2.jhuapl.edu!dlc From: dlc@ddsdx2.jhuapl.edu (Dave Collard x7468) Subject: Re: Language lawyer needed Message-ID: <1993Apr2.135707.25298@aplcen.apl.jhu.edu> Sender: news@aplcen.apl.jhu.edu (USENET News System) Organization: Johns Hopkins University References: <1993Apr1.215753.3147@oracorp.com> Distribution: usa Date: Fri, 2 Apr 93 13:57:07 GMT Date: 1993-04-02T13:57:07+00:00 List-Id: In <1993Apr1.215753.3147@oracorp.com> 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: > The declaration of x in (1) hides the declaration of x as a formal > parameter of Q. > Therefore, by the visibility rules, the occurrence of x in (2) has > exactly one possible meaning, namely that given by the declaration > in (1). > However, the declaration in (1) is not visible by selection at the > point at which x occurs in (2). > Therefore the call in (2) is illegal. The 'x' in (2) does not refer to a variable -- it is part of a named parameter association and has nothing to do with the visibility of either the formal parameter 'x' or the 'x' declared in (1). Q is visible at (2) with the correct parameter and result type profile -- that is the name 'x' is indeed a formal parameter of Q and the actual 0 matches the integer type of that parameter. --Thor dlc@ddsdx2.jhuapl.edu