comp.lang.ada
 help / color / mirror / Atom feed
From: dennison@telepath.com
Subject: Extensions in generic bodies - Language Laywer question
Date: 1998/10/08
Date: 1998-10-08T00:00:00+00:00	[thread overview]
Message-ID: <6vijho$qps$1@nnrp1.dejanews.com> (raw)

Here's one for the langauge Laywers. 3.9.1(4) says: "A type extension shall
not be declared in a generic body if the parent type is declared outside that
body. "

Does that also go for instantiating generics that *cause* a type extension? My
compiler seems to think so.

My situation: I'm trying to create a generic object. Internally (In the body)
I want to keep a queue of these objects. I figure I'll use the Ada95
Booch-components. So in my generic's body I'm instantiating a Booch-Component
container with the object that my generic was instantiated with. However,
BC.Containers contains a type extension in its private section. So when I
compile my generic's body, my compiler blows up at the line of my
instantiation of BC.Containers parroting LRM:3.9.1(4) and also pointing to
the type extension in BC.Containers.

generic
   type Object is private;
package Interface_Object is
.
.
.
end Interface Object;

with BC.Containers;

package body Interface_Object is

  type Object_Ptr is access all Object;  package Object_Container is new
BC.Containers (Item => Object,	Item_Ptr => Object_Ptr);  package
Object_Queue is new Object_Container.Queues.Bounded (Maximum_Size => 10, 
Bnd_Queue_Nodes => Object_Container); . . . end Interface_Object;

Compiling 'Interface_Object.adb': Thu Oct 08 09:47:13 1998

interface_object.adb: Error: line 7 col 30 LRM:3.9.1(4), A type extension may
not be declared in a generic body if the parent type is declared outside that
body; this applies to the visible part of a generic instantiation  (In
instance of generic Containers at bc-containers.ads: line 47 col 10)



--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




             reply	other threads:[~1998-10-08  0:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-08  0:00 dennison [this message]
1998-10-08  0:00 ` Extensions in generic bodies - Language Laywer question Robert I. Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox