From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Finalization of library level tasks
Date: Mon, 30 Apr 2018 19:06:45 +0200
Date: 2018-04-30T19:06:45+02:00 [thread overview]
Message-ID: <pc7if4$dti$1@gioia.aioe.org> (raw)
In-Reply-To: pc7hk3$tpt$1@dont-email.me
On 2018-04-30 18:52, Jeffrey R. Carter wrote:
> On 04/30/2018 02:27 PM, AdaMagica wrote:
>>
>> In short: If you look inside a class-wide object, you'll find inside
>> an object of a specific type within this class (as Randy said in a
>> previous post). What's the property of this specific object seen as a
>> class-wide object that's not a property of the specific object?
>
> About the only difference is that operations dispatch with a class-wide
> parameter and don't with a parameter of a specific type.
>
> Op (Parent'Class (X) );
>
> and
>
> Op (X);
>
> end up executing the same code.
Wrong. Consider this:
type T1 is tagged null record;
procedure Op (X : in out T1);
type T2 is new T1 with null record;
procedure Op (X : in out T2);
type T3 is new T2 with null record;
procedure Op (X : in out T3);
Now this procedure:
procedure Finalize (X : in out T2);
if you pass T3 to it then
procedure Finalize (X : in out T2) is
begin
Op (T1'Class (X)); -- Dispatches to Op (T3 (X))
Op (X); -- Statically calls to Op (T2 (X))
The code is not same because dispatch can cross the actual type border
and go a descendant. This is also why dispatching in Finalize should
have been illegal. All re-dispatch should have been illegal because it
breaks typing.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2018-04-30 17:06 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-15 13:40 Finalization of library level tasks Dmitry A. Kazakov
2018-04-15 14:02 ` Jeffrey R. Carter
2018-04-15 14:12 ` Dmitry A. Kazakov
2018-04-15 14:54 ` Jeffrey R. Carter
2018-04-15 15:15 ` Dmitry A. Kazakov
2018-04-15 15:46 ` AdaMagica
2018-04-15 15:53 ` Dmitry A. Kazakov
2018-04-15 17:17 ` AdaMagica
2018-04-15 17:40 ` Dmitry A. Kazakov
2018-04-15 19:32 ` Egil H H
2018-04-15 20:09 ` Dmitry A. Kazakov
2018-04-25 23:49 ` Randy Brukardt
2018-04-16 5:19 ` J-P. Rosen
2018-04-16 7:30 ` Dmitry A. Kazakov
2018-04-16 7:55 ` J-P. Rosen
2018-04-16 8:13 ` Dmitry A. Kazakov
2018-04-16 8:32 ` J-P. Rosen
2018-04-16 15:26 ` Dmitry A. Kazakov
2018-04-17 9:51 ` AdaMagica
2018-04-17 12:31 ` Dmitry A. Kazakov
2018-04-17 15:37 ` Jeffrey R. Carter
2018-04-17 15:57 ` Dmitry A. Kazakov
2018-04-17 20:16 ` Jeffrey R. Carter
2018-04-17 20:59 ` Dmitry A. Kazakov
2018-04-18 5:20 ` J-P. Rosen
2018-04-17 20:55 ` J-P. Rosen
2018-04-17 21:23 ` Dmitry A. Kazakov
2018-04-18 5:26 ` J-P. Rosen
2018-04-26 0:02 ` Randy Brukardt
2018-04-18 8:06 ` AdaMagica
2018-04-18 8:25 ` Dmitry A. Kazakov
2018-04-18 8:52 ` Egil H H
2018-04-18 9:58 ` Dmitry A. Kazakov
2018-04-18 11:33 ` J-P. Rosen
2018-04-18 11:58 ` Dmitry A. Kazakov
2018-04-18 12:00 ` J-P. Rosen
2018-04-18 12:25 ` Dmitry A. Kazakov
2018-04-18 13:51 ` J-P. Rosen
2018-04-18 14:12 ` Dmitry A. Kazakov
2018-04-18 14:52 ` J-P. Rosen
2018-04-18 15:04 ` Dmitry A. Kazakov
2018-04-18 20:26 ` AdaMagica
2018-04-18 21:00 ` Dmitry A. Kazakov
2018-04-18 20:40 ` AdaMagica
2018-04-19 7:34 ` Simon Wright
2018-04-18 21:29 ` J-P. Rosen
2018-04-19 7:32 ` Dmitry A. Kazakov
2018-04-26 0:04 ` Randy Brukardt
2018-04-26 8:56 ` Dmitry A. Kazakov
2018-04-26 22:10 ` Randy Brukardt
2018-04-27 4:48 ` J-P. Rosen
2018-04-27 20:52 ` Randy Brukardt
2018-04-17 11:16 ` J-P. Rosen
2018-04-17 12:47 ` Dmitry A. Kazakov
2018-04-17 14:08 ` J-P. Rosen
2018-04-17 14:47 ` Dmitry A. Kazakov
2018-04-17 22:00 ` Robert A Duff
2018-04-18 7:25 ` Dmitry A. Kazakov
2018-04-25 23:54 ` Randy Brukardt
2018-04-26 16:22 ` Jeffrey R. Carter
2018-04-26 16:43 ` Dmitry A. Kazakov
2018-04-26 20:19 ` J-P. Rosen
2018-04-16 9:19 ` AdaMagica
2018-04-16 15:15 ` Dmitry A. Kazakov
2018-04-19 20:39 ` G. B.
2018-04-20 7:27 ` Dmitry A. Kazakov
2018-04-25 23:46 ` Randy Brukardt
2018-04-26 9:03 ` Dmitry A. Kazakov
2018-04-26 22:25 ` Randy Brukardt
2018-04-27 7:37 ` Dmitry A. Kazakov
2018-04-27 8:32 ` AdaMagica
2018-04-27 8:57 ` Dmitry A. Kazakov
2018-04-27 21:08 ` Randy Brukardt
2018-04-28 8:35 ` Dmitry A. Kazakov
2018-04-29 17:41 ` AdaMagica
2018-04-29 19:36 ` Dmitry A. Kazakov
2018-04-30 12:27 ` AdaMagica
2018-04-30 13:03 ` Dmitry A. Kazakov
2018-04-30 16:52 ` Jeffrey R. Carter
2018-04-30 17:06 ` Dmitry A. Kazakov [this message]
2018-05-01 9:17 ` AdaMagica
2018-05-01 9:40 ` Dmitry A. Kazakov
2018-05-01 11:18 ` Jeffrey R. Carter
2018-05-01 11:27 ` Dmitry A. Kazakov
2018-05-01 15:54 ` Niklas Holsti
2018-05-02 14:34 ` AdaMagica
2018-05-02 14:50 ` Dmitry A. Kazakov
2018-05-01 2:27 ` Randy Brukardt
2018-05-01 6:59 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox