From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Functions vs constants
Date: Wed, 23 Jul 2014 09:55:19 +0200
Date: 2014-07-23T09:55:19+02:00 [thread overview]
Message-ID: <6iqu3i2wgq5t$.166jyq7d1w1nc.dlg@40tude.net> (raw)
In-Reply-To: lqmnbr$j13$1@loke.gir.dk
On Tue, 22 Jul 2014 17:07:55 -0500, Randy Brukardt wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:cso9nzjs6q5q$.16o96j9yv70q1$.dlg@40tude.net...
>> On Mon, 21 Jul 2014 18:23:05 -0500, Randy Brukardt wrote:
>>
>>> Otherwise, I think all objects (including exceptions) should allow
>>> overloading.
>>
>> What would be of exception renaming then? Would it create a new, possibly,
>> overloaded with itself object? That would be fun!
>
> ??? I don't see a problem. Resolution works as it does now for subprograms,
> and either there is a unique resolution or not. No one says "what would be
> of function renaming if overloading is allowed" -- it just is and everything
> is fine.
I thought about overloading exceptions with exceptions. Presently
exceptions are perceived as a kind of literals rather than objects. It is
untrue, but that is the desired semantics of [OK, some wanted C++ alike
semantics but that is another story]. Renaming conflicts with this.
Overloading may further erode the model.
> The primary reason for allowing overloading of exceptions (as with objects)
> is so that they don't get hidden by something unrelated. (Especially a
> problem for use clauses.) If you have something like (assume these
> declarations have real names and the packages contain dozens of declarations
> each):
>
> package P is
> Error : Boolean;
> end P;
> package Q is
> Error : exception;
> end Q;
>
> with P, Q; use P, Q;
> procedure R is
> begin
> if Error then -- (1)
> raise Error; -- (2)
> end if;
> end R;
>
> both (1) and (2) are illegal today. But there's no good reason for that;
Yes. It does not make sense.
> A thought just popped into my head, perhaps you are worrying about:
> Name_Error : exception renames IO_Exceptions.Name_Error;
> This is thought by many to be a long time bug in Ada. If you have "use
> Text_IO, IO_Exceptions;" then "raise Name_Error;" is illegal -- but that's
> silly because both possibilities are the same entity.
Yes.
> That could be fixed by adopting a rule such that if the only reason that a
> name is ambiguious is because it resolved to several different views of the
> same entity, that it would be treated as properly resolved to the entity.
Right. But also that renaming were not allowed to create any objects. That
would break a lot of exiting code, but this code is already broken, IMO.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2014-07-23 7:55 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-21 21:18 Functions vs constants Victor Porton
2014-07-21 21:28 ` Victor Porton
2014-07-21 21:49 ` Shark8
2014-07-21 21:52 ` Victor Porton
2014-07-21 21:59 ` Adam Beneschan
2014-07-21 21:35 ` Niklas Holsti
2014-07-21 21:41 ` Victor Porton
2014-07-21 23:23 ` Randy Brukardt
2014-07-22 7:42 ` Dmitry A. Kazakov
2014-07-22 22:07 ` Randy Brukardt
2014-07-23 7:55 ` Dmitry A. Kazakov [this message]
2014-07-23 21:44 ` Randy Brukardt
2014-07-23 12:37 ` G.B.
2014-07-23 22:12 ` Randy Brukardt
2014-07-24 7:20 ` Stefan.Lucks
2014-07-25 4:43 ` Randy Brukardt
2014-07-26 2:36 ` Shark8
2014-07-24 8:27 ` Georg Bauhaus
2014-07-24 10:11 ` Dmitry A. Kazakov
2014-07-24 10:49 ` G.B.
2014-07-24 12:50 ` Dmitry A. Kazakov
2014-07-25 4:56 ` Randy Brukardt
2014-07-25 6:45 ` Georg Bauhaus
2014-07-25 10:46 ` G.B.
2014-07-25 19:31 ` Randy Brukardt
2014-07-25 20:02 ` Dmitry A. Kazakov
2014-07-26 2:45 ` Shark8
2014-07-26 8:02 ` Dmitry A. Kazakov
2014-07-26 14:03 ` Shark8
2014-07-26 14:18 ` Dmitry A. Kazakov
2014-07-21 21:55 ` Victor Porton
2014-07-22 7:06 ` Maciej Sobczak
2014-07-22 7:50 ` Dmitry A. Kazakov
2014-07-22 22:14 ` Randy Brukardt
2014-07-23 13:21 ` Stephen Leake
2014-07-23 13:27 ` Victor Porton
2014-07-23 15:10 ` Adam Beneschan
2014-07-23 21:57 ` Robert A Duff
2014-07-24 12:25 ` Victor Porton
2014-07-24 15:53 ` Robert A Duff
2014-07-24 15:57 ` Victor Porton
2014-07-24 16:47 ` Pascal Obry
2014-07-24 12:26 ` anon
2014-07-24 12:52 ` Victor Porton
2014-07-24 16:01 ` Robert A Duff
2014-07-24 16:15 ` Adam Beneschan
2014-07-25 5:05 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox