From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: making a son benefit access ton an instanciation of a generic package required as a formal parameter to his father and instanciated by him
Date: Sun, 21 Jan 2018 23:04:07 +0100
Date: 2018-01-21T23:04:07+01:00 [thread overview]
Message-ID: <p449qd$9ml$1@dont-email.me> (raw)
In-Reply-To: <e259c533-e930-48b5-8af4-1525e6b1abd1@googlegroups.com>
Le 21/01/2018 à 21:15, Mehdi Saada a écrit :
> Thanks Dmitry. I just stumpled against another exemple of your point 1, RM's paragraph 11.2.8:
> An exception_name of a choice shall not denote an exception declared in a generic formal package.
Right, and there is a good reason.
Assuming exception E is declared in generic package GP1:
Imagine this:
generic
package P1 is new GP1 (<>);
package P2 is new GP1 (<>);
package GP2 is... end GP2;
package body GP2 is
...
begin
exception
when P1.E => -- not allowed by Ada
...
when P2.E => -- not allowed by Ada
...
end GP2;
So far, so good. But then, if you instantiate:
package Inst1 is new GP1;
package Inst2 is new GP2 (Inst1, Inst1);
then you would end up with two different handlers for the same exception
(since formals P1 and P2 are actually the same package Inst1). And
that's a no-no!
I agree with Dmitry (It happens sometimes ;-) ) that normally,
exceptions are better declared outside of generics.
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
next prev parent reply other threads:[~2018-01-21 22:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-21 15:43 making a son benefit access ton an instanciation of a generic package required as a formal parameter to his father and instanciated by him Mehdi Saada
2018-01-21 15:58 ` Simon Wright
2018-01-21 17:30 ` Mehdi Saada
2018-01-21 17:39 ` Simon Wright
2018-01-21 17:50 ` Dmitry A. Kazakov
2018-01-21 20:15 ` Mehdi Saada
2018-01-21 20:41 ` Dmitry A. Kazakov
2018-01-21 21:29 ` Mehdi Saada
2018-01-21 21:31 ` Mehdi Saada
2018-01-21 22:20 ` Jeffrey R. Carter
2018-01-21 23:07 ` Mehdi Saada
2018-01-21 23:10 ` Mehdi Saada
2018-01-22 8:28 ` Dmitry A. Kazakov
2018-01-22 9:25 ` Simon Wright
2018-01-23 1:23 ` Randy Brukardt
2018-01-21 22:04 ` J-P. Rosen [this message]
2018-01-22 15:36 ` Mehdi Saada
2018-01-22 15:54 ` Mehdi Saada
2018-01-22 15:52 ` Simon Wright
2018-01-23 1:33 ` Randy Brukardt
2018-01-23 14:05 ` Mehdi Saada
2018-01-23 1:13 ` 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