From: Simon Wright <simon@pushface.org>
Subject: Legality: formal packages with controlled types
Date: 24 Nov 2001 17:39:46 +0000
Date: 2001-11-24T17:39:46+00:00 [thread overview]
Message-ID: <x7vg0742hlp.fsf@smaug.pushface.org> (raw)
The code below fails on OA 7.2 with
bug.ada: Error: line 21 col 42 LRM:3.9.1(3), The accessibility level
of a record extension shall not exceed that of its parent; this
also applies in a generic instantiation (In instance of generic
base at bug.ada: line 7 col 7)
and similar code fails similarly on OA 7.2.1 and AdaMULTI v3.1 I'm
told. Presumably they all share a front end.
The code compiles OK if Base.Container isn't derived from Controlled.
Is it really the case that it's legal to instantiate a generic package
with a package that contains a controlled type but illegal to
instantiate a generic subprogram?
========================================================
with ada.finalization;
generic
type item is private;
package base is
type container is tagged private;
private
type container is new ada.finalization.controlled with record
the_item : item;
end record;
end base;
with base;
generic
type item is private;
with package New_Base is new base (item); -- <==== ok
package Generic_package is end Generic_package;
with base;
generic
type item is private;
with package new_base is new base (item); -- <==== failure
procedure Generic_Procedure;
procedure generic_procedure is
begin
null;
end generic_procedure;
next reply other threads:[~2001-11-24 17:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-24 17:39 Simon Wright [this message]
2001-11-24 18:22 ` Legality: formal packages with controlled types Jeffrey Carter
2001-11-25 10:38 ` Simon Wright
2001-11-28 11:29 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox