comp.lang.ada
 help / color / mirror / Atom feed
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

  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