comp.lang.ada
 help / color / mirror / Atom feed
From: dennison@telepath.com
Subject: Re: What's wrong with this code?
Date: 1999/04/20
Date: 1999-04-20T00:00:00+00:00	[thread overview]
Message-ID: <7fig4m$5f5$1@nnrp1.dejanews.com> (raw)
In-Reply-To: 7fiegr$43q$1@nnrp1.dejanews.com

In article <7fiegr$43q$1@nnrp1.dejanews.com>,
  dennison@telepath.com wrote:
> In article <7fi85m$sb3$1@nnrp1.dejanews.com>,
>   okellogg@my-dejanews.com wrote:
> > Dear colleagues:
> >
> > I can't find what wrong with this code (see full declaration of type Alarm.)
> > Perhaps someone would like to comment?
>
> >     type Alarm is tagged limited
> >         record
> >             -- This compiles alright:
> >             Semaphore : Alarm_Semaphore (Alarm'Access);
> >
> >             -- But here, GNAT 3.11p says:
> >             --  "Access" attribute cannot be applied to type
> >             Alarm_State_Pool : Alarm_State_Pool_At :=
> >                (Snafu => new Snafu_State (Alarm'Access),
> >                 Data => new Data_State (Alarm'Access),
> >                 Proposal => new Proposal_State (Alarm'Access));
> >
> >         end record;
> >
> > end Alarm_Model;
>
> That's probably because 'Access can't be applied to a type. :-)

Drat.

Before anyone else flames me: yes, I had forgotten about the "current
instance" rule. From what I can see in the LRM its supposed to be valid
anywhere "within the declarative region of a type_declaration". So now I'm
also curious why the compiler doesn't like it.

I tried adding the following declarations:
    type Alarm_List is array (1..2) of Alarm_P;

    type Alarm is tagged limited
    ...
            Al : Alarm_List := (others => Alarm'Access);

And got this error (on the "Al" field) instead:
alarm_model.ads:52:43: non-local pointer cannot point to local object


--
T.E.D.

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




  reply	other threads:[~1999-04-20  0:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-04-20  0:00 What's wrong with this code? okellogg
1999-04-20  0:00 ` dennison
1999-04-20  0:00   ` dennison [this message]
1999-04-20  0:00     ` Matthew Heaney
1999-04-21  0:00       ` dennison
1999-04-20  0:00   ` Matthew Heaney
1999-04-21  0:00 ` Stephen Leake
replies disabled

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