comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Dispatch on the result still does not work?
Date: Mon, 13 Jul 2009 08:17:07 -0700 (PDT)
Date: 2009-07-13T08:17:07-07:00	[thread overview]
Message-ID: <5607cc53-7266-4552-a53a-6d9c6fcc5942@q40g2000prh.googlegroups.com> (raw)
In-Reply-To: 9f845311-63a4-4d89-ac78-b6567b999417@d4g2000prc.googlegroups.com

On Jul 13, 8:13 am, Adam Beneschan <a...@irvine.com> wrote:
> On Jul 11, 3:04 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>
>
>
>
>
> > Considering this one:
>
> > package P is
> >    type T is tagged null record;
> >    function Value return T;
>
> >    type S is new T with null record;
> >    function Value return S;
> > end P;
>
> > package body P is
> >    function Value return T is
> >    begin
> >       return (null record);
> >    end Value;
>
> >    function Value return S is
> >    begin
> >       return (T with null record);
> >    end Value;
> > end P;
>
> > use P;
>
> >    X : T'Class := S'(Value);
> > begin
> >    X := Value; -- Ambiguous?
>
> > I would expect it rather dispatching on the tag of X, i.e. selecting Value,
> > which returns S.
>
> The problem here (I mean the problem with your program, not a problem
> with the Ada language) is that the overloading rules, which determine
> what the meaning of the identifier "Value" is when there is more than
> one possibility, do not take the dynamic semantics into account.  The
> overloading rules basically work like this: We consider all possible
> combinations of all possible meanings of the identifiers, then keep
> only the legal ones (legal according to the "legality rules";

Technically, that should have read 'legal according to the "Name
Resolution Rules"'.  The rules listed as Legality Rules in the RM
aren't even considered here (thus, for example, a procedure call with
two meanings can be ambiguous even if one of them involves passing a
constant as an OUT parameter).  My point was that the rules in the
Dynamic Semantics are not considered at all during this phase.

                                  -- Adam




  reply	other threads:[~2009-07-13 15:17 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-11 10:04 Dispatch on the result still does not work? Dmitry A. Kazakov
2009-07-11 11:09 ` Chris Moore
2009-07-11 12:05   ` Dmitry A. Kazakov
2009-07-11 17:50     ` Chris Moore
2009-07-11 19:22       ` Dmitry A. Kazakov
2009-07-11 11:32 ` Hibou57 (Yannick Duchêne)
2009-07-11 12:20   ` Dmitry A. Kazakov
2009-07-11 13:36     ` Hibou57 (Yannick Duchêne)
2009-07-11 13:39       ` Hibou57 (Yannick Duchêne)
2009-07-11 15:19       ` Dmitry A. Kazakov
2009-07-11 18:08         ` Hibou57 (Yannick Duchêne)
2009-07-11 19:29           ` Dmitry A. Kazakov
2009-07-11 23:22             ` Hibou57 (Yannick Duchêne)
2009-07-12  9:46               ` Dmitry A. Kazakov
2009-07-11 18:54 ` Georg Bauhaus
2009-07-11 19:40   ` Dmitry A. Kazakov
2009-07-12 10:40     ` Chris Moore
2009-07-12 11:30       ` Dmitry A. Kazakov
2009-07-12 16:05         ` Chris Moore
2009-07-12 16:38           ` Dmitry A. Kazakov
2009-07-12 17:11             ` AdaMagica
2009-07-12 20:30               ` sjw
2009-07-13 16:55                 ` Adam Beneschan
2009-07-13 21:47                   ` sjw
2009-07-13 22:50                     ` Adam Beneschan
2009-07-14 21:06                       ` sjw
2009-07-13 15:13 ` Adam Beneschan
2009-07-13 15:17   ` Adam Beneschan [this message]
2009-07-13 16:33     ` AdaMagica
2009-07-13 18:46   ` Adam Beneschan
replies disabled

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