home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!gatech!usenet.ins.cwru.edu!agate!linus!linus.mitre.org!linus!mbunix!eachus
- From: eachus@oddjob.mitre.org (Robert I. Eachus)
- Subject: Re: Visibility
- In-Reply-To: pattis@cs.washington.edu's message of Thu, 24 Dec 92 02:16:55 GMT
- Message-ID: <EACHUS.92Dec24160854@oddjob.mitre.org>
- Sender: news@linus.mitre.org (News Service)
- Nntp-Posting-Host: oddjob.mitre.org
- Organization: The Mitre Corp., Bedford, MA.
- References: <1992Dec23.233519.21523@netfs.dnd.ca>
- <1992Dec24.021655.22555@beaver.cs.washington.edu>
- Date: Thu, 24 Dec 1992 21:08:54 GMT
- Lines: 35
-
- In article <1992Dec24.021655.22555@beaver.cs.washington.edu> pattis@cs.washington.edu (Richard Pattis) writes:
-
- Now, can anyone say why this interpretation "is a good thing".
-
- Sure. First of all the restriction in 8.2(16) only applies to the
- use of a name within a subprogram with the same simple name. The rule
- is there so that there is no need to do (potentially circular)
- overload resolution of a name which may be affected by the current
- declaration before the parameter and result type profile of the
- declaration itself can be resolved. Second any simple name which
- which matches would be illegal for other reasons, so the only
- "overgenerality" that the rule could be accused of is in exactly this
- case. But--you still need to do (potentially circular) overload
- resolution to determine whether or not this name is legal:
-
- procedure P is
- type Q is new Integer;
- function P return Integer is
- function Q return P.Q is...
-
- (Please no responses on the other rules which come into play here.
- I know that beacuse of 4.1.3(18), this simple case is alway ambiguous.)
-
- So the intent of the rule is to allow an implementation not to put
- function Q into the overload resolution database until the whole
- declaration is resolved, and the minimum restriction possible is as
- written.
-
- --
-
- Robert I. Eachus
-
- with Standard_Disclaimer;
- use Standard_Disclaimer;
- function Message (Text: in Clever_Ideas) return Better_Ideas is...
-