From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Ada design bug or GNAT bug?
Date: Sat, 20 Jun 2015 20:55:49 +0200
Date: 2015-06-20T20:55:49+02:00 [thread overview]
Message-ID: <yo94phsbcvht$.1bktwe2qoqntt$.dlg@40tude.net> (raw)
Is it intentional that there is no way to derive from a more specific type
privately? A key design pattern is no more possible in GNAT GPL 2015:
package P1 is
type T1 is tagged null record;
type T2 is new T1 with null record;
function Foo return not null access T2;
end P1;
with P1; use P1;
package P2 is
type T3 is new T1 with private;
private
type T3 is new T2 with null record;
overriding function Foo return not null access T3; -- Illegal!
end P2;
p2.ads:5:09: type must be declared abstract or "Foo" overridden
p2.ads:5:09: "Foo" has been inherited from subprogram at p1.ads:4
p2.ads:6:24: private function with tagged result must override visible-part
function
p2.ads:6:24: move subprogram to the visible part (RM 3.9.3(10))
[ Since when access types became tagged? ]
There seem no way to implement T3 by deriving from T2. *Any* declaration of
Foo would be illegal.
1. It cannot be inherited
2. A public declaration is not an overriding
3. A private declaration must be public
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next reply other threads:[~2015-06-20 18:55 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-20 18:55 Dmitry A. Kazakov [this message]
2015-06-21 2:42 ` Ada design bug or GNAT bug? Randy Brukardt
2015-06-21 6:47 ` Dmitry A. Kazakov
2015-06-22 17:39 ` Randy Brukardt
2015-06-22 18:16 ` Dmitry A. Kazakov
2015-06-23 11:00 ` G.B.
2015-06-23 14:27 ` Dmitry A. Kazakov
2015-06-23 11:45 ` G.B.
2015-06-23 14:30 ` Dmitry A. Kazakov
2015-07-02 22:22 ` Randy Brukardt
2015-07-03 8:02 ` Dmitry A. Kazakov
2015-07-03 17:33 ` Randy Brukardt
2015-07-03 21:34 ` Dmitry A. Kazakov
2015-07-04 3:11 ` Randy Brukardt
2015-07-04 12:14 ` Dmitry A. Kazakov
2015-07-05 0:53 ` Randy Brukardt
2015-06-22 18:27 ` Shark8
2015-06-23 11:51 ` vincent.diemunsch
2015-06-23 19:55 ` Shark8
2015-06-23 13:06 ` vincent.diemunsch
2015-06-23 14:30 ` David Botton
2015-06-23 15:57 ` Niklas Holsti
2015-06-23 16:01 ` G.B.
2015-06-23 18:05 ` David Botton
2015-06-23 19:38 ` David Botton
2015-06-23 14:38 ` Dmitry A. Kazakov
2015-06-23 16:57 ` Vincent
2015-06-23 17:15 ` Dmitry A. Kazakov
2015-06-23 19:14 ` vincent.diemunsch
2015-06-23 19:33 ` Dmitry A. Kazakov
2015-06-23 17:42 ` Jeffrey R. Carter
2015-07-02 22:06 ` Randy Brukardt
2015-07-04 1:52 ` Shark8
2015-07-04 3:24 ` Randy Brukardt
2015-07-04 11:02 ` Build-in-place semantics? (Was: Ada design bug or GNAT bug?) Jacob Sparre Andersen
2015-07-04 12:15 ` Dmitry A. Kazakov
2015-07-05 0:45 ` Randy Brukardt
2015-07-05 7:10 ` Dmitry A. Kazakov
2015-07-05 0:40 ` Randy Brukardt
2015-07-04 14:05 ` Ada design bug or GNAT bug? Bob Duff
2015-07-04 7:46 ` Simon Wright
2015-07-04 12:00 ` Björn Lundin
2015-07-05 0:48 ` Randy Brukardt
2015-07-06 12:37 ` Vincent
2015-07-06 20:05 ` Randy Brukardt
2015-07-07 8:06 ` 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