comp.lang.ada
 help / color / mirror / Atom feed
From: Brad Moore <bmoore.ada@gmail.com>
Subject: Re: Ada Distilled problem
Date: Fri, 4 Mar 2016 10:58:15 -0800 (PST)
Date: 2016-03-04T10:58:15-08:00	[thread overview]
Message-ID: <cd9a0037-394c-43d3-ba37-2fda8e6ca898@googlegroups.com> (raw)
In-Reply-To: <lysi06je8p.fsf@pushface.org>

On Friday, March 4, 2016 at 11:21:28 AM UTC-7, Simon Wright wrote:
> A Stack Overflow user has been having problems[1] trying to use the
> queue manager described at page 82 of Ada Distilled (2005 version)[2].
> 
> To see the problem in its essentials, the (inoperative!) spec could be
> 
>    generic
>       type Element is tagged private;
>    package Lists is
>       type Item is new Element with private;
>       type List is tagged private;
> 
>       procedure Insert (Self : in out List; I : Item'Class);
> 
>    private
>       type Item is new Element with null record;
>       type List is tagged null record;
>    end Lists;
> 
> with a calling program
> 
>    with Lists;
>    procedure Main is
>       type Temp is tagged null record;
>       package Temp_List is new Lists (Temp);
> 
>       FL : Temp_List.List;
> 
>       Instance : Temp := Temp'(null record);
> 
>    begin
>       Temp_List.Insert (Self => FL, I  => Instance);
>    end Main;
> 
> resulting in
> 
>    main.adb:11:40: expected type "Item'Class" defined at lists.ads:4,
>    instance at line 4
>    main.adb:11:40: found type "Temp" defined at line 3
> 
> and I can't see any way of twisting this so it can compile. And, in any
> case, what is the point of "type Item"?

I dont see any point. Looks to me like the example needs to be corrected.

I would change the 'I' parameter of the Insert to be of type Element'Class, then this should compile.

Brad

> 
> Has anyone managed to use the Ada Distilled design? (of course, nowadays
> one would implement either directly or over predesigned containers).
> 
> [1]
> http://stackoverflow.com/questions/35790004/ada-package-with-generic-tagged
> [2] http://www.adaic.org/learn/materials/#ada_2005_books - first entry

  reply	other threads:[~2016-03-04 18:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 18:21 Ada Distilled problem Simon Wright
2016-03-04 18:58 ` Brad Moore [this message]
2016-03-04 21:36   ` Simon Wright
2016-03-04 19:01 ` Jeffrey R. Carter
replies disabled

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