comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@comcast.net>
Subject: Re: Language lawyer question: Equality on 'Access attributes
Date: Sat, 10 Jan 2004 11:37:08 -0500
Date: 2004-01-10T11:37:08-05:00	[thread overview]
Message-ID: <78OdnX7je6Oot53d4p2dnA@comcast.com> (raw)
In-Reply-To: <vvue8p2km7909e@corp.supernews.com>

Randy Brukardt wrote:

> "Robert I. Eachus" <rieachus@comcast.net> wrote in message
> news:XridndndEa-m2mOiRVn-hQ@comcast.com...
> ...
> 
>>The technical question is how many "=" operations could apply in this
>>case.  My contention was that there are at least two, one associated
>>with the 'Access attributes (actually I think there is one for each
>>attribute) and one declared by the user.
> 
> Huh? There is nothing in the RM about types being declared by 'Access. The
> only way to get an anonymous access type is via an access_definition, as in
> a parameter. And anonymous access types don't even have their own "=", see
> 4.5.2(6) "...for every type T that is not limited, and is not an anonymous
> access type."

Yeah, I goofed when I wrote the part you quoted.  (I should never play 
language lawyer after midnight.)  But I am still convinced that there is 
an issue here.  If there are anonymous access Integer types around, it 
is not clear to me that they can be ignored during overload resolution.

Let me reiterate that I am not saying that a compiler that concludes the 
example program is legal are wrong.  Far from it.  But I am saying that 
   GNAT's interpretation may also be correct, and it may depend on 
whether or not the implementation (or the user) defines an access 
Integer parameter somewhere.

Visibility of predefined "=" (and other predefined operators) is a best 
described by first pointing at RM 8.3(29) (which is a note): "Not all 
contexts where an identifier, character_literal, or operator_symbol are 
allowed require visibility of a corresponding declaration. Contexts 
where visibility is not required are identified by using one of these 
three syntactic categories directly in a syntax rule, rather than using 
direct_name or selector_name."

Now look at RM 4.5(1..7):   "The language defines the following six 
categories of operators (given in order of increasing precedence). The 
corresponding operator_symbols, and only those, can be used as 
designators in declarations of functions for user-defined operators..."

A similar problem occured in Ada83 with "for I in -1..10;" (or other 
similar constructs).  Even if there was only one predefined integer 
type, the existance of Count in Text_IO made the "-" operator ambiguous, 
even if there was no with for Text_IO.  This issue was fixed in Ada 95 
by 8.6(29).

I certainly agree that my interpretation is not one that I am 
comfortable with.  I am also not sure that I like all of the 
ramifications of the other/majority interpretation.

 > Ada 200Y probably will change this slightly; we've spent a lot of ARG 
 > time looking at this area because we want to expand the places that
 > anonymous access types can be used.

It is probably not worth a separate BI at this point, but fixing the 
relevant wording should be rolled into Ada0Y.  (I've never liked the 
wording of RM 8.6 (20..25) anyway. ;-)

-- 
                                           Robert I. Eachus

"The war on terror is a different kind of war, waged capture by capture, 
cell by cell, and victory by victory. Our security is assured by our 
perseverance and by our sure belief in the success of liberty." -- 
George W. Bush




  reply	other threads:[~2004-01-10 16:37 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-08  2:05 Language lawyer question: Equality on 'Access attributes Adam Beneschan
2004-01-08  7:47 ` Robert I. Eachus
2004-01-08 11:07   ` Dmitry A. Kazakov
2004-01-08 17:18   ` Adam Beneschan
2004-01-08 18:04     ` Robert A Duff
2004-01-08 18:31       ` Ze Administrator
2004-01-08 21:04         ` Robert A Duff
2004-01-09  4:02           ` Ze Administrator
2004-01-09 23:02             ` Robert A Duff
2004-01-10  2:56               ` Ze Administrator
2004-01-09  4:06           ` Ze Administrator
2004-01-09 23:05             ` Robert A Duff
2004-01-10  3:03               ` Ze Administrator
2004-01-10 13:47                 ` Marin David Condic
2004-01-10  7:19               ` Robert I. Eachus
2004-01-10 19:09                 ` Robert A Duff
2004-01-11 14:27                   ` Robert I. Eachus
2004-01-11 21:42                     ` Ze Administrator
2004-01-12  5:16                       ` Robert I. Eachus
2004-01-09  1:28         ` Adam Beneschan
2004-01-09  4:10           ` Ze Administrator
2004-01-09 11:27             ` Dmitry A. Kazakov
2004-01-09 23:09               ` Robert A Duff
2004-01-10 11:56                 ` Dmitry A. Kazakov
2004-01-10 17:08                   ` Robert I. Eachus
2004-01-10 18:40                   ` Robert A Duff
2004-01-09 23:08             ` Robert A Duff
2004-01-10  7:39               ` Robert I. Eachus
2004-01-08 20:36       ` tmoran
2004-01-08 21:06         ` Robert A Duff
2004-01-09  0:27       ` Randy Brukardt
2004-01-09  1:23       ` Adam Beneschan
2004-01-09  1:38         ` Robert A Duff
2004-01-09  6:16       ` Robert I. Eachus
2004-01-09 23:27         ` Randy Brukardt
2004-01-10 16:37           ` Robert I. Eachus [this message]
     [not found] ` <hmfvc1-f73.ln1@beastie.ix.netcom.com>
     [not found]   ` <l7v1d1-n33.ln1@beastie.ix.netcom.com>
2004-01-09 23:19     ` Robert A Duff
2004-01-09 23:21     ` Randy Brukardt
  -- strict thread matches above, loose matches on Subject: below --
2004-01-09  5:48 christoph.grein
2004-01-09  6:03 christoph.grein
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox